如何添加" arr [i] .length"在我的FOR LOOP? arr [0] .length工作正常,但"我"给出错误。我试图循环通过2D数组
function infiniteLoop(arr) {
var answer;
for (let i = 0; i < arr[i].length; i++) {
answer =+1;
}
return answer;
}
document.write(infiniteLoop([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]));
&#13;
答案 0 :(得分:3)
您无法在i
实际存在之前要求它查找i
的值。你有一个二维数组,所以需要使用嵌套的for循环:
var answer = 0;
for(var i = 0; i < arr.length; i++) {
for(var j = 0; j < arr[i].length; j++) {
answer += 1;
}
}
P.S。您还需要在answer
处开始0
。您无法将1
的值添加到undefined
变量。
答案 1 :(得分:1)
你想循环遍历数组的长度,然后使用另一个循环来遍历内部数组元素。
function infiniteLoop(arr) {
var answer;
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr[i].length; j++) {
// SOME CODE
}
}
return answer;
}
答案 2 :(得分:0)
你实际上需要使用两个循环来处理这个问题,因为需要迭代在arr
中传递的实际数组,然后另一个循环遍历内部数组的元素:
function infiniteLoop(arr) {
var answer = 0;
// Iterate through your array of arrays ([[1,2,3],[4,5,6]], etc.)
for (let i = 0; i < arr.length; i++) {
// Now go through each individual array (i.e. [1,2,3], etc.)
for (let j = 0; j < arr[i].length; j++) {
answer += 1;
}
}
return answer;
}
如果你想计算数组中元素的数量,可能有更短的非循环替代方案,但这应该适用于你需要做的事情。
答案 3 :(得分:0)
function array2dStuff(a)
{
var n = 0;
for (var i = 0; i < a.length; i++)
{
for (var j = 0; j < a[i].length; j++)
{
//n += a[i][j]; // for sum of numbers
n++; // for number of elements
}
}
return n;
}