我正在尝试打印数组值的索引。当我这样做时:
let a = [1,2,3,4,5];
var findIdx = function (arr) {
for (let i = 0 ; i < arr.length; i++) {
var indexes = [];
var index = arr[i];
console.log(index);
return indexes.push(index);
}
return indexes;
}
console.log(findIdx(a));
// => 0,1 // return
这不是我想要的,我想获得这些值的索引。此外,我的return
正在返回1
。我想要一个由这些索引组成的数组。我错过了什么?
当我执行for in
循环时,我在控制台上获得了我想要的内容,但我仍然返回找到该索引的值。
let a = [1,2,3,4,5];
var findIdxWithForIn = function (arr) {
var indexes = [];
for (i in arr) {
var index = i;
console.log(index);
return indexes.push(index);
}
return indexes
}
console.log(findIdxWithForIn(a));
// => 0, 1 // return
TL; DR:这是一个带有上述代码的jsfiddle。
请注意,我只想查看该数组中的所有索引
答案 0 :(得分:0)
你应该做这样的事情,
var findIdxWithForIn = function (arr) {
var indexes = [];
for (i in arr) {
var index = i;
indexes.push(index)
console.log(index);
}
return indexes;
}
现在,如果你想找出索引数组包含的内容,那么你再次将它放在for循环中并提取
答案 1 :(得分:0)
httpclient
应该在for循环中。你做错了。
indexes.push(index)
答案 2 :(得分:0)
试试这个
let a = [1, 2, 3, 4, 5];
console.log('======= For Loop ========')
/*
For loop
*/
var findIdx = function (arr) {
var indexes = [];
for (let i = 0 ; i < arr.length; i++) {
var index = arr[i];
console.log(index);
indexes.push(index);
}
return indexes
}
console.log(findIdx(a));
console.log('======= For In ========')
/*
For In Loop
*/
var findIdxWithForIn = function (arr) {
var indexes = [];
for (i in arr) {
var index = i;
console.log(index);
indexes.push(index);
}
return indexes //.push(index);
}
console.log(findIdxWithForIn(a));
答案 3 :(得分:0)
您正在打印var index
,它不是索引,它是数组中的元素:
var index = arr[i];
console.log(index);
您需要获得索引var index = i;
。因为for循环中的i
是实际索引。您还可以使用arr.indexOf(...);
获取特定元素的索引。