向后循环Javascript数组



我想在javascript中的数组中向后循环,然后获得数组中每个元素的索引,例如,如果一个数组有10个元素,并向后循环,它将记录9,8,7,6,5,4,3,2,1,0。由于一些奇怪的原因,我得到了一堆负-1,我很困惑为什么它不能正确返回索引。

代码

//Arrays I would like to pass into the function
const valid1 = [4, 5, 3, 9, 6, 7, 7, 9, 0, 8, 0, 1, 6, 8, 0, 8];
const invalid1 = [4, 5, 3, 2, 7, 7, 8, 7, 7, 1, 0, 9, 1, 7, 9, 5];
function validateCred(arr) {
let sum = 0;
for (let i = arr.length - 1; i >= 0; i--) {
console.log(arr.indexOf(i));
}
}
console.log(validateCred(valid1));

为什么是-1?

由于arr.indexOf(i)在循环开始时,i=15所以:

arr.indexOf(15)将返回-1,因为您的数组中没有15

nexti=14同上。

。..

i=9则会找到索引为3的元素。

正如UnholySheep上面解释的那样,array. indexof (i)为您提供了数组中i所表示的值的第一次出现的索引。下面是一些帮助您调试的代码:

function validateCred(arr) {
let sum = 0
for (let i = arr.length - 1; i >= 0; i--) {
console.log(i)        // log the index
console.log(arr[i])   // log the value
}
}

相关内容

  • 没有找到相关文章

最新更新