[ @@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【イテレータ取得 (キー・値)】配列 (キー・値) のイテレータオブジェクト取得

関連

外部リンク

構文

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【インデックス位置要素 取得】

メモ

概要

  • インデックス位置の要素を取得
  • [ ]【要素アクセス】でも可能 (負数不可)
  • 負数指定も可 (末尾から)

関連

外部リンク (英語)

Array.prototype.at ( index )
ES2023 (14) ES2022 (13) ES2021 (12)

構文

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