0

私はこのような配列を持っています

var Zips = [{Zip: 92880, Count:1}, {Zip:91710, Count:3}, {Zip:92672, Count:0}]

一致する別の zip を取得したときにカウントをインクリメントできるように、Zip プロパティを介して特定のオブジェクトの Count プロパティにアクセスできるようにしたいと考えています。私はこのようなことを望んでいましたが、それは正しくありません (これはループになります)

Zips[rows[i].Zipcode].Count

私はそれが正しくないことを知っており、毎回結果セットをループせずに解決策があることを望んでいますか?

ありがとう

4

6 に答える 6

5

私はそれが正しくないことを知っており、毎回結果セットをループせずに解決策があることを望んでいますか?

いいえ、ループして、基準を満たす適切な値を見つける必要があります。filterまたは、次の方法を使用することもできます。

var filteredZips = Zips.filter(function(element) {
    return element.Zip == 92880;
});
if (filteredZips.length > 0) {
    // we have found a corresponding element
    var count = filteredZips[0].count;
}

別の方法でオブジェクトを設計した場合:

var zips = {"92880": 1, "91710": 3, "92672": 0 };

次に、次の場所に直接アクセスできますCount

var count = zips["92880"];
于 2013-08-29T15:47:51.947 に答える
1

現在の形式では、ループなしで郵便番号によって要素にアクセスすることはできません。

配列を次の形式のオブジェクトに変換できます。

var Zips = { 92880: 1, 91710: 3 }; // etc.

次に、次の方法でアクセスできます

Zips[rows[i].Zipcode]

配列からオブジェクトに変換するには、これを使用できます

var ZipsObj = {};
for( var i=Zips.length; i--; ) {
  ZipsObj[ Zips[i].Zip ] = Zips[i].Count;
}
于 2013-08-29T15:50:05.530 に答える
-1

これを試しましたか?

Zips[i].Zip.Count
于 2013-08-29T15:50:25.703 に答える