我想在javascript中访问数组中的元素,而不必使用for循环来访问它。
这是我的数组:
var array = [{
"title": "Warnings",
"numbers": 30,
"content": [{
"number": 3001,
"description": "There may be a problem with the device you are using if you use the default profile"
}]
}, {
"title": "Errors",
"numbers": 20,
"content": [{
"number": 1000,
"description": "No network is loaded"
}]
}]
我想在不进行for循环的情况下访问“警告”的“内容”属性。我目前正在进行访问的内容如下:
var content;
for(a in array) {
if(a.title == "Warnings") {
content = a.content;
break;
}
}
这在javascript中是否可行?
答案 0 :(得分:3)
处理此问题的最佳方法可能是将数据更改为对象,并通过“标题”访问对象元素:
var data = {
"Warnings": {
"numbers": 30,
"content": [
{
"number" : 3001,
"description" : "There may be a problem with the device you are using if you use the default profile"
}
]
},
"Errors": {
"numbers": 20,
"content": [
{
"number": 1000,
"description": "No network is loaded"
}
]
}
};
然后,您可以将{} data.Warnings
和错误data.Errors
作为警告访问。
如果你不介意测试失败,你可以测试它们是否存在于if (data.Warnings)
或if (data.Errors)
,或者if (data.Warnings === undefined)
如果您更愿意测试数据是否存在于所有
使用此更新格式,如果数据不可用,则访问类似于“返回的警告内容”,您将使用以下内容:
var content = data.Warnings ? data.Warnings.content : '';
答案 1 :(得分:1)
var content = ar.filter(function(v) {
return v.title == 'Warnings';
})[0].content;
答案 2 :(得分:0)
如果你知道索引,你可以像这样访问它:
array[0].content
答案 3 :(得分:0)