各種イテレータ取得 メソッド

Array.prototype[ @@iterator ]() 【イテレータ取得】
Array.prototype.keys()【イテレータ取得 (キー)】
Array.prototype.values()【イテレータ取得 (値)】
Array.prototype.entries()【イテレータ取得 (キー・値)】

メモ

構文

array[ Symbol.iterator ]() 

戻り値イテレータ
array.keys() 

戻り値イテレータ (キー)
array.values() 

戻り値イテレータ (値)
array.entries() 

戻り値イテレータ (キー と 値 の配列)

const array = [10, 20, , 40];

const iter = array[Symbol.iterator]();
for (let 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 (let 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 (let 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 (let entry of iter) {
  console.log(entry);
}
// 出力:Array [ 0, 10 ]
// 出力:Array [ 1, 20 ]
// 出力:Array [ 2, undefined ]
// 出力:Array [ 3, 40 ]

const iter2 = array.entries();
for (let [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) {
  let key;
  let value;
  [key, value] = result4.value;
  console.log(key, value);
  result4 = iter4.next();
}
// 出力:0 10
// 出力:1 20
// 出力:2 undefined
// 出力:3 40