13

以下のコードでは、JSONObject.lengthは 2 です。

var JSONObject = [{
    "name": "John Johnson",
    "street": "Oslo West 16",
    "age": 33,
    "phone": "555 1234567"
}, {
    "name": "John Johnson",
    "street": "Oslo West 16",
    "age": 33,
    "phone": "555 1234567"
}];

ただし、以下のコードでは、JSONObject.lengthは定義されていません。なんで?

var JSONObject = {
    "name": "John Johnson",
    "street": "Oslo West 16",
    "age": 33,
    "phone": "555 1234567"
};
4

2 に答える 2

19

JavaScript には、オブジェクトの .length プロパティがありません。それを解決したい場合は、オブジェクトを手動で反復処理する必要があります。

function objLength(obj){
  var i=0;
  for (var x in obj){
    if(obj.hasOwnProperty(x)){
      i++;
    }
  } 
  return i;
}


alert(objLength(JSONObject)); //returns 4

編集:

これが最初に書かれて以来、Javascript は進化してきましたObject.keys(JSONObject).length。ずっときれい。

于 2013-09-26T16:01:16.997 に答える