106

重複の可能性:
Javascript オブジェクトの長さ (つまり、連想配列)

私はこれに似たオブジェクトを持っています:

var jsonArray = {
  '-1': {
    '-1': 'b',
    '2': 'a',
    '10': 'c'
  },
  '2': {
    '-1': 'a',
    '2': 'b',
    '10': 'a'
  },
  '5': {
    '-1': 'a',
    '2': 'a',
    '10': 'b'
  }
};

長さを取得しようとしていますが、問題はjsonArray.length3 ではなく 5 を返すことです (これはアイテムの合計です)。配列は比較的長く (1000x2000 項目あり)、毎秒何度も実行する必要があります。アイテムの数をより効率的に取得するにはどうすればよいですか?

4

3 に答える 3

172

kieran の回答に加えて、明らかに、最新のブラウザーにはObject.keys機能があります。この場合、これを行うことができます:

Object.keys(jsonArray).length;

javascriptオブジェクトのプロパティを一覧表示する方法に関するこの回答の詳細

于 2012-12-08T22:52:02.957 に答える
20

これはオブジェクトであり、そのプロパティをカウントしたいとします。

Object.keys(jsonArray).length

参考文献:

于 2012-12-08T22:51:56.500 に答える
6

それはあなたの実際のコードですか?JavaScript オブジェクト (これはあなたが私たちに与えたものです) には長さのプロパティがないため、この場合exampleArray.lengthは 5 ではなく undefined を返します。

このスタックオーバーフローは、オブジェクトと配列の長さの違いを説明し、このスタックオーバーフローは、オブジェクトの「サイズ」を取得する方法を示しています。

于 2012-12-08T22:49:53.947 に答える