1. ホーム
  2. javascript

Javascriptで配列のキーを反復する方法は?

2023-08-09 17:06:27

質問

このコードで作成した配列があります。

var widthRange = new Array();
widthRange[46] = { min:0,  max:52 };
widthRange[66] = { min:52, max:70 };
widthRange[90] = { min:70, max:94 };

46, 66, 90の各値をループで取得したい。試しに for (var key in widthRange) を試してみましたが、これは余分なプロパティの束を与えてしまいます(私はそれらがオブジェクトの関数であると仮定しています)。値が連続ではないので、私は通常のforループを使用することはできません。

どのように解決するのですか?

この問題を解決するには hasOwnProperty 関数を呼び出して、プロパティが実際に(プロトタイプではなく)オブジェクト自体に定義されているかどうかを、このようにチェックします。

for (var key in widthRange) {
    if (key === 'length' || !widthRange.hasOwnProperty(key)) continue;
    var value = widthRange[key];
}

を別途チェックする必要があることに注意してください。 length .

しかし、ここでは配列を使うべきではありません。通常のオブジェクトを使うべきです。 すべてのJavascriptのオブジェクトは、連想配列として機能します。

例えば

var widthRange = { };  //Or new Object()
widthRange[46] = { sel:46, min:0,  max:52 };
widthRange[66] = { sel:66, min:52, max:70 };
widthRange[90] = { sel:90, min:70, max:94 };