JavaScript <その他リファレンス メモ> 言語 等CSSHTMLJavaScriptPython ライブラリ・プラットフォームjQuerymicro:bitXamarin ドキュメンテーションDoxygenJSDocMarkdownSHFBXML ドキュメント コメント その他各種資料 子サイト簡易リファレンス・Tips サポート寄付 Array【配列】 各種イテレータオブジェクト取得 メソッド [ @@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【イテレータ取得 (キー・値)】配列 (キー・値) のイテレータオブジェクト取得関連at【インデックス位置要素 取得】 forEach【要素処理】 reduce【隣接要素処理 (順方向)】 reduceRight【隣接要素処理 (逆方向)】 外部リンク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【インデックス位置要素 取得】メモ概要インデックス位置の要素を取得 [ ]【要素アクセス】でも可能 (負数不可) 負数指定も可 (末尾から) 関連[ @@iterator ] 【イテレータ取得】 keys【イテレータ取得 (キー)】 values【イテレータ取得 (値)】 entries【イテレータ取得 (キー・値)】 外部リンク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