不确定为什么这不起作用。
说明:
//创建一个名为indexFinder的函数,它将遍历一个数组并返回一个新的内容索引数组,例如: [243,123,4,12]将返回[0,1,2,3]。创建一个名为'indexes'的新变量,并将其设置为包含randomNumbers的索引。
尝试过的解决方案:
let randomNumbers = [1, 3453, 34, 456, 32, 3, 2, 0];
let indexes = [];
function indexFinder(arr){
for(var i = 0; arr.length; i++){
indexes.push(i);
}
return indexes;
}
indexFinder(randomNumbers);
console.log(indexes);
答案 0 :(得分:2)
您的for
循环中没有真实条件测试,因为arr.length
,当大于0时,始终是真的。
let randomNumbers = [1, 3453, 34, 456, 32, 3, 2, 0];
let indexes = [];
function indexFinder(arr){
for(var i = 0; i < arr.length; i++){
indexes.push(i);
}
return indexes;
}
indexFinder(randomNumbers);
console.log(indexes);
&#13;
但是这样做的方式要简洁得多:
const randomNumbers = [1, 3453, 34, 456, 32, 3, 2, 0];
const indexFinder = arr => arr.map((_, i) => i);
console.log(indexFinder(randomNumbers));
&#13;
答案 1 :(得分:2)
另一种方法是使用Array.from
const randomNumbers = [1, 3453, 34, 456, 32, 3, 2, 0];
console.log(Array.from(randomNumbers, x => randomNumbers.indexOf(x)));
或者我们可以使用密钥
const randomNumbers = [1, 3453, 34, 456, 32, 3, 2, 0];
console.log([...Array(randomNumbers.length).keys()])
答案 2 :(得分:1)
问题是for-loop
仅使用arr.length
的情况,因为长度大于0
的人总是true
。
另一种方法是使用 Array.from
:
let randomNumbers = [1, 3453, 34, 456, 32, 3, 2, 0],
indexes = Array.from({length: randomNumbers.length}, (_, i) => i);
console.log(indexes);
另一种方法是获取长度,然后执行简单的for-loop
。