Используя JavaScript, как я могу увеличить все элементы в массиве и вернуть массив?

#javascript #arrays #increment

Вопрос:

Есть одна функция, на которой я застрял, увеличивая все элементы в моем массиве и возвращая массив. Что теперь делать?

 function incrementByOne(arr) {
  // arr is an array of integers(numbers), Increment all items in the array by
  // return the array
  for (let i = 0; i < arr.length; i  ) {
    arr[i]  = 1;
    return(arr);
  }
 
}

 

Комментарии:

1. переместите return после цикла.

2. @VLAZ огромное вам спасибо! Это сработало!

Ответ №1:

Вы можете просто использовать Array.prototype.map с функцией стрелки для этого:

 function incrementByOne(arr) {
    return arr.map(value => value   1);
}

console.log(incrementByOne([1,5,4,7,3])); 

Ваша попытка была великолепна, но вы return arr; сделали это слишком рано. Имейте в виду, что вы также изменяете массив, вместо того чтобы возвращать копию с обновленными значениями. Вы могли бы сначала скопировать массив с arr = [...arr]; помощью .

Комментарии:

1. Спасибо, что ответили!

Ответ №2:

Все, что мне нужно было сделать, — это выйти за return пределы петли.

 function incrementByOne(arr) {
      // arr is an array of integers(numbers), Increment all items in the array by
      // return the array
      for (let i = 0; i < arr.length; i  ) {
        arr[i]  = 1;
      }
      return(arr);
    }