Создать новый индексный массив - PullRequest
0 голосов
/ 05 мая 2018

Не уверен, почему это не работает.

Инструкция:

// Создать функцию 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);

Ответы [ 3 ]

0 голосов
/ 05 мая 2018

Другой метод использует 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()])
0 голосов
/ 05 мая 2018

Проблема в том, что 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.

0 голосов
/ 05 мая 2018

В вашем цикле 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);

Но есть гораздо более краткий способ сделать это:

const randomNumbers = [1, 3453, 34, 456, 32, 3, 2, 0];
const indexFinder = arr => arr.map((_, i) => i);
console.log(indexFinder(randomNumbers));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...