0

特定の数値に対応する一連の値があります。同じ数に対応する 2 つの値は決してありません。数字の間に隙間はありません。
EG
{a: 1, b: 2, c: 3, d: 4} ではなく {a: 1, b: 3, c: 4, d: 7}

現在、値を配列に格納し、その値のインデックスを見つけています。配列内のインデックスは、値が対応する数値です。

配列が事前設定されていると仮定します。私の質問は、Javascriptで対応する数字を見つけるのにどちらが効率的かということです。

配列の特定の位置に値を格納し、indexOf() でインデックスを見つけます。

- -また - -

値と数値をキーと値のペアとして連想配列に格納します。

4

1 に答える 1

0

あなたが言っていることから...配列は1ではなくインデックス0から始まるので、aはゼロでなければなりません

CASE 数値配列:{a:1, b:2, c:3, d:4} for ループが適しています

var a = [];
a[5] = 5; 
for (var i=0; i<a.length; i++) {
    // Iterates over every single numeric indexes from 0 to 5
}

CASE 値がスキップされる:{a: 1, b: 3, c: 4, d: 7}

for..in が適しています

 var a = [];
    a[5] = 5;
    for (var x in a) {
       ignores 0-4,shows only 5
    }

CASE 連想配列: indexof が適しています

注: 配列を反復することは悪い習慣と見なされますが、オブジェクトのメンバーを反復することはそうではありません。

于 2013-06-07T14:01:39.353 に答える