コンテンツにスキップ

JavaScript/Array/prototype/keys

出典: フリー教科書『ウィキブックス(Wikibooks)』

Array.prototype.keys()

[編集]

Array.prototype.keys() は、配列のインデックスを反復処理するためのイテレータを返すメソッドです。

構文

[編集]
array.keys()

返り値

[編集]

配列のインデックスを順次返す Iterator オブジェクト

説明

[編集]
  • 配列の各要素のインデックスを順番に取得できるイテレータを生成
  • 元の配列を変更せずに反復処理が可能
  • ECMAScript 2015 (ES6) で導入されたメソッド

使用例

[編集]

基本的な使用

[編集]
const array = ['a', 'b', 'c'];
const iterator = array.keys();

console.log(iterator.next().value); // 0
console.log(iterator.next().value); // 1
console.log(iterator.next().value); // 2

for...of ループでの使用

[編集]
const array = ['x', 'y', 'z'];
for (const key of array.keys()) {
    console.log(key); // 0, 1, 2 を順に出力
}

インデックスと値の同時取得

[編集]
const array = ['apple', 'banana', 'cherry'];
for (const [index, value] of array.entries()) {
    console.log(`インデックス: ${index}, 値: ${value}`);
}
// 出力:
// インデックス: 0, 値: apple
// インデックス: 1, 値: banana
// インデックス: 2, 値: cherry
const array = ['x', 'y', 'z'];
const keys = [...array.keys()];
console.log(keys); // [0, 1, 2]

特殊な動作 =

[編集]

疎な配列の場合

[編集]
const sparseArray = [1, , , 4];
const keys = [...sparseArray.keys()];
console.log(keys); // [0, 1, 2, 3]
// 空のスロットも通常のインデックスとして扱われる

注意点

[編集]
  • イテレータは一度しか使用できません
  • 新しい配列を生成するわけではありません
  • 空の配列に対しては空のイテレータを返します
  • インデックスのみを返し、実際の値は返しません

ブラウザ互換性

[編集]
  • モダンブラウザで広くサポート
  • Internet Explorer では利用不可
  • Node.js 4.0.0 以降でサポート

関連メソッド

[編集]

仕様

[編集]
  • ECMAScript 2015 (ECMA-262)