Spec-Zone.ru › JavaScript

Array.prototype.fill()

Базовая поддержка Широко доступно

Эта возможность хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2016 года.

Метод fill() экземпляров Array изменяет все элементы в диапазоне индексов массива на статическое значение. Он возвращает измененный массив.

Попробуйте

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

// Fill with 0 from position 2 until position 4
console.log(array.fill(0, 2, 4));
// Expected output: Array [1, 2, 0, 0]

// Fill with 5 from position 1
console.log(array.fill(5, 1));
// Expected output: Array [1, 5, 5, 5]

console.log(array.fill(6));
// Expected output: Array [6, 6, 6, 6]

Синтаксис

fill(value)
fill(value, start)
fill(value, start, end)

Параметры

value
Значение, которым будет заполнен массив. Обратите внимание, что все элементы массива будут иметь это точное значение: если value является объектом, каждая ячейка массива будет ссылаться на этот объект.
start Необязательно
Индекс (начиная с 0), с которого следует начать заполнение, преобразованный в целое число.
  • Отрицательный индекс отсчитывается с конца массива — если -array.length <= start < 0, используется start + array.length.
  • Если start < -array.length или start опущены, используется 0.
  • Если start >= array.length, ни один индекс не заполняется.
end Необязательно
Индекс (начиная с 0), по которому следует закончить заполнение, преобразованный в целое число. fill() заполняет индексы вплоть до end, но не включая его.
  • Отрицательный индекс отсчитывается с конца массива — если -array.length <= end < 0, используется end + array.length.
  • Если end < -array.length, используется 0.
  • Если end >= array.length или end опущены или undefined, используется array.length, что приводит к заполнению всех индексов до конца.
  • Если end указывает на позицию, которая находится до или на той же позиции, на которую указывает start, ничего не заполняется.

Возвращаемое значение

Измененный массив, заполненный value.

Описание

Метод fill() является мутирующим методом. Он не изменяет длину this, но изменяет содержимое this.

Метод fill() также заполняет пустые слоты в разреженных массивах с помощью value.

Метод fill() является универсальным (generic). Он ожидает, что значение this будет иметь только свойство length. Хотя строки также похожи на массивы, этот метод не подходит для применения к ним, поскольку строки являются неизменяемыми.

Примечание: Использование Array.prototype.fill() на пустом массиве (length = 0) не изменит его, так как в массиве нечего изменять. Чтобы использовать Array.prototype.fill() при объявлении массива, убедитесь, что массив имеет ненулевое значение length. Смотрите пример.

Примеры

Использование fill()

console.log([1, 2, 3].fill(4)); // [4, 4, 4]
console.log([1, 2, 3].fill(4, 1)); // [1, 4, 4]
console.log([1, 2, 3].fill(4, 1, 2)); // [1, 4, 3]
console.log([1, 2, 3].fill(4, 1, 1)); // [1, 2, 3]
console.log([1, 2, 3].fill(4, 3, 3)); // [1, 2, 3]
console.log([1, 2, 3].fill(4, -3, -2)); // [4, 2, 3]
console.log([1, 2, 3].fill(4, NaN, NaN)); // [1, 2, 3]
console.log([1, 2, 3].fill(4, 3, 5)); // [1, 2, 3]
console.log(Array(3).fill(4)); // [4, 4, 4]

// A single object, referenced by each slot of the array:
const arr = Array(3).fill({}); // [{}, {}, {}]
arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]

Использование fill() для создания матрицы из всех 1

Этот пример показывает, как создать матрицу из всех 1, подобную функции ones() в Octave или MATLAB.

const arr = new Array(3);
for (let i = 0; i < arr.length; i++) {
  arr[i] = new Array(4).fill(1); // Creating an array of size 4 and filled of 1
}
arr[0][0] = 10;
console.log(arr[0][0]); // 10
console.log(arr[1][0]); // 1
console.log(arr[2][0]); // 1

Использование fill() для заполнения пустого массива

Этот пример показывает, как заполнить массив, установив все элементы на определенное значение. Параметр end не обязательно указывать.

const tempGirls = Array(5).fill("girl", 0);

Обратите внимание, что массив изначально был разреженным массивом без назначенных индексов. fill() все равно способен заполнить этот массив.

Вызов fill() на объектах, не являющихся массивами

Метод fill() считывает свойство length объекта this и устанавливает значение каждого целочисленного свойства от start до end.

const arrayLike = { length: 2 };
console.log(Array.prototype.fill.call(arrayLike, 1));
// { '0': 1, '1': 1, length: 2 }

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-array.prototype.fill

Совместимость с браузерами

Настольные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari на iOS Samsung Internet WebView Android WebView на iOS Bun Deno Node.js
fill
45
12
31
32
8
45
31
32
8
5.0
45
8
1.0.0
1.0
4.0.0

См. также

  • Полифилл Array.prototype.fill в core-js
  • Руководство по индексированным коллекциям
  • Array
  • TypedArray.prototype.fill()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API