Как заполнить массив в JavaScript начальными значениями

Вы можете столкнуться с ситуацией, когда вам нужен массив с предопределенными значениями, чтобы вы могли выполнять итерации по ним. Самым очевидным способом будет создание цикла for и инициализация массива, как показано ниже:

let array = []

for (let index = 0; index < 10; index++) {
  array.push(1)
}
Вход в полноэкранный режим Выход из полноэкранного режима

Мы рассмотрим 3 других метода заполнения массива в javascript без явного использования цикла for.

Использование метода Array.fill

Мы можем использовать метод fill, предоставляемый объектом Array
для заполнения массива предопределенными значениями.

const array = Array(10).fill(1)

console.log(array) // [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
Вход в полноэкранный режим Выход из полноэкранного режима

Array(10) создаст пустой (разреженный) массив размером 10.

Метод fill принимает дополнительные параметры, которые могут быть использованы для заполнения только части массива:

const array = [1, 2, 3, 4]

array.fill(5, 2, 4)

console.log(array) //[1, 2, 5, 5]
Войти в полноэкранный режим Выйти из полноэкранного режима

Второй аргумент используется для указания, с какой позиции начинать (включительно), а третий аргумент говорит, до какого места заполнять (исключительно, максимум — array.length).

Использование метода Array.from

Мы можем заполнить массив с помощью метода Array.from двумя различными способами:

const array1 = Array.from({ length: 10 }, () => 1)
console.log(array1) // [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

const array2 = Array.from(Array(10), () => 1)
console.log(array2) //[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
Войти в полноэкранный режим Выйти из полноэкранного режима

В качестве первого аргумента принимается массив или объект iterable, а в качестве второго — функция map, которая должна вернуть заполняемое значение.

Использование оператора spread и функции .map

Для заполнения массива мы можем использовать комбинацию оператора spread и функции map:

const array = [...Array(10)].map(() => 1)
console.log(array) //[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
Вход в полноэкранный режим Выйти из полноэкранного режима

Здесь необходимо разложить и создать другой массив, так как Array(10).map(()=>1) создаст только пустой (разреженный) массив.

Заполнение массива с 1..n

Если вам нужно заполнить массив числами от 1 до n (скажем, от 1 до 10), вы можете сделать это с помощью одного из следующих кодов:

const array1 = Array.from({ length: 10 }, (value, index) => index + 1)
console.log(array1) // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

const array2 = [...Array(10)].map((value, index) => index + 1)
console.log(array2) // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Войти в полноэкранный режим Выйти из полноэкранного режима

Заполнение массива объектами

Массив можно заполнять не только числами, но и другими типами значений, такими как строка, объект и т.д. Если вам нужно создать массив объектов, то вы можете сделать это, как показано ниже:

const array = Array.from({ length: 5 }, (value, index) => {
  return { id: index + 1 }
})
console.log(array) // [{"id":1},{"id":2},{"id":3},{"id":4},{"id":5}]
Войти в полноэкранный режим Выйти из полноэкранного режима

Если вы знаете какие-либо другие методы, пожалуйста, опишите их в комментариях ниже.

Оцените статью
devanswers.ru
Добавить комментарий