Array.prototype.entries()
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на множестве устройств и версий браузеров. Она доступна во всех браузерах с мая 2018 года.
Метод entries() экземпляров Array возвращает новый объект итератора массива, который содержит пары ключ/значение для каждого индекса в массиве.
Попробовать
const array = ["a", "b", "c"]; const iterator = array.entries(); console.log(iterator.next().value); // Expected output: Array [0, "a"] console.log(iterator.next().value); // Expected output: Array [1, "b"]
Синтаксис
entries()
Параметры
Нет.
Возвращаемое значение
Новый итерируемый объект-итератор.
Описание
При использовании на разреженных массивах, метод entries() перебирает пустые слоты, как если бы они имели значение undefined.
Метод entries() является обобщённым. Он ожидает, что значение this будет иметь свойство length и свойства с целочисленными ключами.
Примеры
Итерация по индексу и элементу
const a = ["a", "b", "c"];
for (const [index, element] of a.entries()) {
console.log(index, element);
}
// 0 'a'
// 1 'b'
// 2 'c'
Использование цикла for...of
const array = ["a", "b", "c"];
const arrayEntries = array.entries();
for (const element of arrayEntries) {
console.log(element);
}
// [0, 'a']
// [1, 'b']
// [2, 'c']
Итерация разреженных массивов
entries() будет посещать пустые слоты, как если бы они были undefined.
for (const element of [, "a"].entries()) {
console.log(element);
}
// [0, undefined]
// [1, 'a']
Вызов entries() на не-массивовых объектах
Метод entries() считывает свойство length объекта this, а затем обращается к каждому свойству, ключ которого является неотрицательным целым числом, меньшим, чем length.
const arrayLike = {
length: 3,
0: "a",
1: "b",
2: "c",
3: "d", // ignored by entries() since length is 3
};
for (const entry of Array.prototype.entries.call(arrayLike)) {
console.log(entry);
}
// [ 0, 'a' ]
// [ 1, 'b' ]
// [ 2, 'c' ]
Спецификации
Совместимость с браузерами
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
entries |
38 |
12 |
28 |
25 |
8 |
38 |
28 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
Смотрите также
- Полифил
Array.prototype.entriesвcore-js - es-shims полифил
Array.prototype.entries - Руководство по индексированным коллекциям
ArrayArray.prototype.keys()Array.prototype.values()Array.prototype[Symbol.iterator]()TypedArray.prototype.entries()- Протоколы итерации
© 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/entries