[ @@iterator ] 【イテレータ取得】
keys【イテレータ取得 (キー)】
values【イテレータ取得 (値)】
entries【イテレータ取得 (キー・値)】
at【インデックス位置要素 取得】
Array.prototype.[ @@iterator ] 【イテレータ取得】
Array.prototype.keys【イテレータ取得 (キー)】
Array.prototype.values【イテレータ取得 (値)】
Array.prototype.entries【イテレータ取得 (キー・値)】
メモ
概要
- 各種イテレータオブジェクトを取得
メソッド 備考 [ @@iterator ] 【イテレータ取得】 初期値は values【イテレータ取得 (値)】
(@@iterator の実装:Symbol.iterator)keys【イテレータ取得 (キー)】 キーのイテレータオブジェクト取得 values【イテレータ取得 (値)】 値のイテレータオブジェクト取得 entries【イテレータ取得 (キー・値)】 配列 (キー・値) のイテレータオブジェクト取得
関連
外部リンク
- ECMA-262 (英語)
Array.prototype [ @@iterator ] ( ) ES2024 (15) ES2023 (14) ES2022 (13) Array.prototype.keys ( ) ES2024 (15) ES2023 (14) ES2022 (13) Array.prototype.values ( ) ES2024 (15) ES2023 (14) ES2022 (13) Array.prototype.entries ( ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
array[ Symbol.iterator ]()
イテレータオブジェクト
for (const value of array ) {
value の処理
}
array.keys()
イテレータオブジェクト (キー)
array.values()
イテレータオブジェクト (値)
array.entries()
イテレータオブジェクト (キー と 値 の配列)
例
const array = [10, 20, , 40];
const iter = array[Symbol.iterator]();
for (const value of iter) {
console.log(value);
}
// 出力:
// 10
// 20
// undefined
// 40
const iter2 = array[Symbol.iterator]();
let result = iter2.next();
while (! result.done) {
console.log(result.value);
result = iter2.next();
}
// 出力:
// 10
// 20
// undefined
// 40
const array = [10, 20, , 40];
const iter = array.keys();
for (const key of iter) {
console.log(key);
}
// 出力:
// 0
// 1
// 2
// 3
const iter2 = array.keys();
let result = iter2.next();
while (! result.done) {
console.log(result.value);
result = iter2.next();
}
// 出力:
// 0
// 1
// 2
// 3
const array = [10, 20, , 40];
const iter = array.values();
for (const value of iter) {
console.log(value);
}
// 出力:
// 10
// 20
// undefined
// 40
const iter2 = array.values();
let result = iter2.next();
while (! result.done) {
console.log(result.value);
result = iter2.next();
}
// 出力:
// 10
// 20
// undefined
// 40
const array = [10, 20, , 40];
const iter = array.entries();
for (const entry of iter) {
console.log(entry);
}
// 出力:
// Array [ 0, 10 ]
// Array [ 1, 20 ]
// Array [ 2, undefined ]
// Array [ 3, 40 ]
const iter2 = array.entries();
for (const [key, value] of iter2) {
console.log(key, value);
}
// 出力:
// 0 10
// 1 20
// 2 undefined
// 3 40
const iter3 = array.entries();
let result = iter3.next();
while (! result.done) {
console.log(result.value);
result = iter3.next();
}
// 出力:
// Array [ 0, 10 ]
// Array [ 1, 20 ]
// Array [ 2, undefined ]
// Array [ 3, 40 ]
const iter4 = array.entries();
let result4 = iter4.next();
while (! result4.done) {
const [key, value] = result4.value;
console.log(key, value);
result4 = iter4.next();
}
// 出力:
// 0 10
// 1 20
// 2 undefined
// 3 40
Array.prototype.at【インデックス位置要素 取得】
メモ
概要
- インデックス位置の要素を取得
- [ ]【要素アクセス】でも可能 (負数不可)
- 負数指定も可 (末尾から)
関連
外部リンク
- ECMA-262 (英語)
Array.prototype.at ( index ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
array.at( index )
インデックス位置の要素 (undefined:範囲外)
index インデックス位置
0 ≦先頭から
< 0末尾から
例
const array = [10, 20, , 40];
for (let i = 0; i < array.length; i++) {
console.log(i, array[i], array.at(i));
}
// 出力:
// 0 10 10
// 1 20 20
// 2 undefined undefined
// 3 40 40
for (let i = 1; i <= array.length; i++) {
console.log(-i, array[-i], array.at(-i));
}
// 出力:
// -1 undefined 40
// -2 undefined undefined
// -3 undefined 20
// -4 undefined 10
// 範囲外
console.log(array[4], array.at(4));
// 出力:undefined undefined
console.log(array[-1], array.at(-5));
// 出力:undefined undefined