Как получить индекс элементов массива, просматривая - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь получить индексы элементов массива. Я собираюсь использовать его для вопроса Leetcode «Создать целевой массив в заданном порядке».

Сейчас я написал следующий код, но он не работает. (возвращает неопределенное значение)

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

Ответы [ 2 ]

0 голосов
/ 31 марта 2020
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]

0 голосов
/ 31 марта 2020

Чтобы получить индекс чисел, вы должны вызвать 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);
...