在下面的代码中,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"
}];
Run Code Online (Sandbox Code Playgroud)
但是,在下面的代码中,JSONObject.length
未定义.为什么?
var JSONObject = {
"name": "John Johnson",
"street": "Oslo West 16",
"age": 33,
"phone": "555 1234567"
};
Run Code Online (Sandbox Code Playgroud)
Dou*_*oug 17
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
Run Code Online (Sandbox Code Playgroud)
编辑:
Javascript已经开始了,因为这是最初写的,IE8是不相关的,你应该感到安全使用Object.keys(JSONObject).length
.更清洁.
以下实际上是JSON对象的数组:
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" }];
Run Code Online (Sandbox Code Playgroud)
因此,在JavaScript中length是数组的属性。在第二种情况下
var JSONObject = {"name":"John Johnson", "street":"Oslo West 16", "age":33,
"phone":"555 1234567"};
Run Code Online (Sandbox Code Playgroud)
JSON对象不是数组。因此length属性不可用,并且将是未定义的。因此,您可以将其设置为数组,如下所示:
var JSONObject = [{"name":"John Johnson", "street":"Oslo West 16", "age":33,
"phone":"555 1234567"}];
Run Code Online (Sandbox Code Playgroud)
或者,如果您已经有反对意见JSONObject
。您可以尝试以下操作:
var JSONObject = {"name":"John Johnson", "street":"Oslo West 16", "age":33,
"phone":"555 1234567"};
var jsonObjArray = []; // = new Array();
jsonObjArray.push(JSONObject);
Run Code Online (Sandbox Code Playgroud)
而且您确实length
拥有财产。
归档时间: |
|
查看次数: |
24671 次 |
最近记录: |