了解javascript中的For循环 - 在Array中打印值的索引

时间:2016-11-15 08:43:10

标签: javascript function loops

我正在尝试打印数组值的索引。当我这样做时:

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

请注意,我只想查看该数组中的所有索引

4 个答案:

答案 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(...);获取特定元素的索引。