const arrList = [
["100", "200", "300"],
["400", "500", "600"],
["700", "800", "900"],
];
// for 循环的初始值,控制着起始位置,约束条件控制着结束位置
for (let i = 0; i < 3; i++) {
for (let j = i; j < 3; j++) {
console.log(arrList[i][j]);
}
}
console.log("---------------------");
for (let i = 0; i < 3; i++) {
for (let j = 0; j <= i; j++) {
console.log(arrList[i][j]);
}
}
["100", "200", "300"],
["400", "500", "600"],
["700", "800", "900"],
["100", "200", "300"],
["400", "500", "600"],
["700", "800", "900"],
const arrList = [
["100", "200", "300"],
["400", "500", "600"],
["700", "800", "900"],
];
// i表示行,j表示列
// 外层的for循环,决定第一层遍历的大纲
// 内层的for循环,收到外层for循环的影响,说明内存for循环遍历的数量,受到影响
for (let j = 0; j < 3; j++) {
for (let i = 0; i <= j; i++) {
console.log(arrList[i][j]);
}
}
console.log("------------------------------------------");
// 和上面的进行对比以为,只是改变了将arrList[i][j]变成了arrList[j][i],原来以列进行遍历的大纲,变成了以行进行遍历的大纲
// 所以说,一开始我们就是要将这个i表示行,j表示列,给定死,然后进行遍历,就会有大纲的思维
// 事实上,你发现这个i和j的表示没有太大意义,仔细观察,如果 外层for循环的变量,对应二维数组的第一个位置,那么就是以行进行遍历的,反之如果外层for循环,对应二维数组的第二个位置,就是以列进行遍历的
for (let j = 0; j < 3; j++) {
for (let i = 0; i <= j; i++) {
console.log(arrList[j][i]);
}
}
console.log('==========================================')
for (let i = 0; i < 3; i++) {
for (let j = 0; j <= i; j++) {
console.log(arrList[i][j]);
}
}
console.log('---------------------------------------------')