如何通过循环获取数组元素的索引

How to get index of array elements by looping through

我正在尝试获取数组元素的索引。我打算用它来做 Leetcode 问题 "Create Target Array in the Given Order".

现在我写了下面的代码,但它不起作用。 (returns 未定义)

var createTargetArray = function(nums) {    

    for(var i=0; i<nums.length; i++) {
        console.log(nums.indexOf[i])
    }

};

const num = [1,2,3,4,0,108];
createTargetArray(num);

该代码的预期输出:[0, 1, 2, 3, 4, 5]

我是否错误地使用了 indexOf 方法?

要获取数字的索引,您必须将 indexOf 作为函数调用 (indexOf(i)) 而不是数组访问器 (indexOf[i])

尝试运行下面的代码片段进行检查。

var createTargetArray = function(nums) {    

    for(var i=0; i<nums.length; i++) {
        console.log(nums.indexOf(i))
    }

};

const num = [1,2,3,4,0,108];
createTargetArray(num);

如果你想要 exery 编号的索引,那只是你的变量 i。您不需要调用 indexOf 方法。

var createTargetArray = function(nums) {    

    for(var i=0; i<nums.length; i++) {
        console.log(i)
    }

};

const num = [1,2,3,4,0,108];
createTargetArray(num);

var createTargetArray = function(nums) {    
    for(var i=0; i<nums.length; i++) {
        console.log(nums.indexOf[i]) // <--mistake
    }
};

indexOf是一个方法

console.log(nums.indexOf(nums[i]));

但是由于您正在循环遍历数组,因此输出将始终为 [0, 1, 2, ... n]