js横竖倾斜遍历二维数组

js 二维数组 遍历 js 二维数组 遍历 轻松实现实现 二维数组输出 包含高级for循环 立即下载

js遍历任意形状二维数组,我完全是找规律用大量循环完成遍历,这里的二维数组指完整矩形,不包含内部子数组长度不一致情况。
定义二维数组 ,数组中子数组长度设为x,外面大数组长度为y

let arr = [
            [1, 2, 3, 4, 5, 6, 7, 8, 9], 
            [1, 2, 3, 4, 5, 6, 7, 8, 9], 
            [1, 2, 3, 4, 5, 6, 7, 8, 9],  
            [1, 2, 3, 4, 5, 6, 7, 8, 9],  
            [1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 2, 3, 4, 5, 6, 7, 8, 9],
        ]

首先横着遍历

for (let i = 0; i < arr.length; i++) {
	for (let j = 0; j < arr[i].length; j++) {
		console.log(arr[i][j])
	}
}

然后竖着遍历

for (let i = 0; i < arr[0].length; i++) {
	for (let j = 0; j < arr.length; j++) {
		console.log(arr[j][i])
	}
}

关键是斜着遍历,斜着分两种情况,要加判断,我没想到更好方法,就靠判断循环。
首先获取数组长宽

let len = arr[0].length;
let wid = arr.length;
let max = len > wid ? len : wid;
let min = len > wid ? wid : len;

遍历所有\行

for (let i = 0; i < (len + wid - 1); i++) {
	let str = '';
	if (0 <= i && i < min) {
		for (let j = 0; j <= i; j++) {
			str += arr[j][len - j - 1]				
		}
	} else if (min <= i && i < max) {
		// 这两个for循环看似一样但是不能合并不同形状取值不一定取得到
		if (len > wid) {
			for (let j = 0; j < min; j++) {
				str += arr[j][len - i - 1 + j]					
			}
		} else {
			for (let j = 0; j < min; j++) {
				str += arr[i - len + j][j]	
			}
		}
	} else {
		for (let j = 0; j < len + wid - i; j++) {
			str += arr[i - len + j][j])		
		}
	}
	console.log(str)
}

遍历所有/行

for (let i = 0; i < (len + wid - 1); i++) {
            let str = '';
            if (0 <= i && i < min) {
                for (let j = 0; j <= i; j++) {
                    str += arr[j][i - j]
                }
            } else if (min <= i && i < max) {
                if (len > wid) {
                    for (let j = 0; j < min; j++) {
                        str += arr[j][i - j]
                    }
                } else {
                    for (let j = 1; j <= min; j++) {
                        str += arr[i - min + j][min - j]
                    }
                }
            } else {
                for (let j = 0; j < len + wid - i; j++) {
                    str += arr[i - len + j][len - j -1]
                }
            }
            console.log(str)
        }

我就是通过观察二维数组找规律,然后用代码表述出来,用了大量if和循环。附上我斜着的的测试结果。
在这里插入图片描述

Redis中什么是Big Key(大key)问题?如何解决Big Key问题? 通俗易懂的讲,Big Key就是某个key对应的value很大,占用的redis空间很大,本质上是大value问题。key往往是程序可以自行设置的,value往往不受程序控制,因此可能导致value很大。redis中这些Big Key对应的value值很大,在序列化/反序列化过程中花费的时间很大,因此当我们操作Big Key时,通常比较耗时,这就可能导致redis发生阻塞,从而降低redis性能。用几个实际的例子对大Key的特征进行描述:● 一个String类型的Key,它的值为5MB(数据过大); ● 一 阅读详情

相关推荐

PyMySQLSaver实战:构建高可靠性的LangGraph状态管理

本文详细介绍了如何使用PyMySQLSaver构建高可靠性的LangGraph状态管理系统。通过检查点机制和MySQL持久化技术,开发者可以确保AI应用在崩溃后从最近状态恢复,支持长时间运行任务和多轮交互。文章包含核心架构解析、生产环境部署指南及实战案例,帮助开发者掌握状态管理的核心技术。

weixin_29310605的博客 495

利用js遍历二维数组使用三种方式

【代码】利用js遍历二维数组使用三种方式。

weixin_47195969的博客 2609

[PayPal报错]为遵守国际法规,这笔交易已被拒绝。

PayPal报错解决:为遵守国际法规,这笔交易已被拒绝。

qq_39906413的博客 1万+

横向遍历为什么比纵向遍历快

平时看到有关CPU缓存行的时候 都会看到如下代码和问题: 横向遍历和纵向遍历哪种速度更快? int[][] array = new int[64 * 1024][1024]; //横向遍历 80ms for(int i = 0; i < 64 * 1024; i ++) for(int j = 0; j < 1024; j ++) array[i][j] ++; // 纵向遍历 2100+ms for(int i = 0; i < 1024; i ++)

qq_41865296的博客 722

自制《大侠狂想曲》修改器:内存修改、加速与一键安装全攻略

游戏修改器是玩家优化游戏体验的常用工具,其核心原理是通过内存修改技术,在游戏进程运行时动态改写数值。常见实现路径是借助Cheat Engine扫描并追踪数据地址,再通过编程语言调用系统API完成读写。这种技术能有效解决重复刷资源带来的枯燥感,特别适用于单机RPG中想快速体验多剧情线却不想重刷资源的情形。本文以《大侠狂想曲》为例,完整拆解了从CE定位金钱与好感度内存地址,到编写C#脚本实现游戏加速、一键增加铜钱与NPC好感度,再到用Inno Setup打包生成一键安装器的全过程,并总结了数值弹回、剧情不触发、

weixin_30368981的博客 1471

别再死记硬背了!用‘小乌龟’实战图解ROS1核心指令(rosnode/rostopic/rosparam保姆级手册)

本文通过经典的turtlesim乌龟仿真器,以可视化实战方式讲解ROS1核心指令(rosnode/rostopic/rosparam),帮助初学者摆脱死记硬背,在操控乌龟的过程中轻松掌握节点管理、话题通信和参数设置等ROS1核心概念。

weixin_28731223的博客 371

稳稳当当学java之数组(7)

第九章 数组 1.作业回顾 1,定义一个方法,功能是打印m行n列的指定符号的矩形,在主方法中调用此方法。 2,定义一个方法,功能是计算 长为x,宽为y的矩形的面积,在主方法中调用此方法,在主方法中打印结果。 3,定义一个方法,实现找出三个数的 最大值,并在主方法中调用此方法,在主方法中打印结果。 public class Day091 { //1, 定义一个方法,功能是打印m行n列的指定符号的矩形,在主方法中调用此方法。 public static void Print_rectangular(int

weixin_42405054的博客 329

深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计

大家好,我是微学AI ,今天给大家介绍一下深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计。高中数学自适应测试系统旨在通过精准评估学生能力,用最少的题目发现其薄弱环节,并提供定制化的学习计划,帮助学生快速提升成绩。同时,系统结合了AI大模型实现自动判卷、生成报告,减轻教师负担,并支持个性化作业布置,使教学更加高效。学生可以清晰了解自身学习状态,教师也能获得精准的学生画像,实现差异化教学。

微学AI的博客 444

为什么二维数组横向遍历比纵向遍历快?

为什么二维数组横向遍历比纵向遍历快?

scarificed的博客 1345

Python和Spyder:一个完美的编程组合

而Spyder作为一个专门为科学计算和数据分析而设计的IDE,提供了高效的开发环境和丰富的工具。无论是初学者还是专业开发者,Python和Spyder都能满足他们的需求,并为他们的工作带来便利和效率。本文将探讨Python和Spyder之间的关系,以及它们如何相互配合,提供一流的编程体验。每个工具都有其特定的优势和适用场景,开发者可以根据自己的需求选择合适的工具。而Spyder作为一个专门为科学计算而设计的IDE,提供了编写、调试和执行Python代码的环境。

CodeHeroicX的博客 1124

全面绩效管理:提升整体效能

《全面绩效管理:提升整体效能》 关键词:绩效管理、整体效能、团队绩效、个体绩效、领导力、数字化转型 摘要:本文从绩效管理的基础概念入手,深入探讨了绩效管理体系构建、绩效指标

AI天才研究院 604

二维数组倾斜遍历

  如图对二维数组进行上图遍历 package test; public class text1 { public static void main(String[] args) { int [][]a= { {1,5,9,3,7}, {1,5,9,3,-7}, {1,5,9,3,7}, {1,5,9,3,7}, {1,5,9,3,7}, ...

eggplant_的博客 1248

美的集团-数据挖掘工程师面试分享

美的集团-数据挖掘工程师面试分享

512

HarmonyOS 6.1 实战 页面跨Tab状态跳转逻辑封装,实现不同功能页面之间无参数跳转与视图联动

在非物质文化遗产数字化保护与文化创意设计领域,传统纹样正经历从"博物馆展柜"到"数字素材库"的深刻变革。从唐草卷纹的织锦提花到宋代缠枝的汝窑描银,从万字回纹锦的霞帔錾刻到冰梅青花的釉下彩绘,每一种纹样都承载着朝代审美与工艺智慧。传统纹样素材管理平台面临三大挑战:纹样品类占比缺乏可视化呈现导致馆藏结构不透明、双层频道(朝代×纹样)的滑动分发难以流畅联动、WebP 动画元数据的读写校验缺乏沙箱零权限演示路径。HarmonyOS ArkUI 框架为这些挑战提供了系统级解决方案。ArkUI 的声明式 UI 范式通过

2401_86049470的博客 308

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【JavaScript】数组和二维数组

一、数组 1. 概念 2. 创建数组 2.1 使用'[]'创建 2.2 使用 'new Array'创建 3. 数组的属性 4.数组元素的访问 5.示例 6.for...in循环 7. for...of循环 8. forEach循环 二、二维数组 1. 概念 2. 二维数组的创建 2.1使用'[]' 2.2使用'new Array' 3. 二维数组元素的访问 4. 例题

早睡早起长头发的博客 3282

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JavaScript遍历二维数组

&lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt; &lt;title&gt;无标题文档&lt;/title&gt; &lt;style&gt; &lt;/s

从盲流子到程序员 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

04.JS-数组

这篇文章是我自己在学习js过程中做的笔记,如果有错误或者遗漏的请评论告诉我。希望大家一起学习! 笔记内容主要有:数组的定义、数组元素的操作、二位数组的遍历 1.数组:一组数据有序排列的一个集合                          数组的索引值从0开始                               数组长度 --- 数组名.length                ...

陈同学的博客 285

java遍历二维数组_javascript js如何遍历二维数组呢?

摘要:下文讲述js遍历二维数组的方法分享,如下所示:实现思路:使用两个for循环对数组进行遍历求和例:求班级成绩的平均分maomao365.com js 求班级的平均分/*定义一个二维数组存储学生成绩*/var arrayList=[['猫猫',98],['毛毛',89],['成成',96],['小小',88],['狗狗',68],['狗蛋',78],['王八',92],['365',79],['...

weixin_29074295的博客 2137

js数组遍历方法及应用,看这篇就够了

开发中处理数组常用到的遍历方法,超详细。

@LiuStrong 1852

js 数组 按列循环二维数组

按列循环二维数组

在职可交流前端开发,包括:web端、uniapp等,欢迎指教。 387

js二维数组的转置,二维数组的转置指的是将二维数组横向元素保存为纵向元素。

<script> //方法1 var arr1 = [ ['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ['j', 'k', 'l'], ]; var new_arr = []; // 初始化 for (let i = 0; i < arr1[0].length; i++) {.

weixin_56726579的博客 2182

javascript遍历数组的两种方法

<br />var aa=new Array(1,2,3,4); <br />var num1=aa.length;<br />第一种方法,用循环(利用数组下标) <br /> for (var i=0;i<=num1-1;i++) <br /> { <br /> document.write(aa[i]+","); <br /> } <br /> 第二种方法,当数组的下标是不规则的,只能用for ..in <br /><br /><br /> for (var i in aa) <br />

点滴记忆成长瞬间 909

JavaScript中数组的概念及遍历数组的五种方式

js中数组的简单理论,以及遍历数组的方法 forEach ()与 map()的区别

嗨皮的博客 503

js二维数组的遍历

【代码】js二维数组的遍历。

夏炎正好眠 265

jsjsjs

js是弱数据类型语言 只有赋值之后,才知道是什么数据类型。==:(隐式转换)只比较数值,将字符串转换为数字类型后进行比较。比较运算符> < >=

Orangeio的博客 1338

二维数组的赋值与遍历

public class ArrayDou{ public static void main (String args[]){ //创建一维数组 int arr1 [] = new int []{1,2,3,45,56}; int arr2 [] = {12,23,45,67}; int [] arr3 = {90,89}; //创建二维数组 int array[] [...

wyqwilliam的博客 2489
上一篇: js获取树形JSON数据根节点到任一子节点路径
下一篇: vue使用canvas画图画不出来
jsjs_js
博客等级 码龄7年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值