根据JavaScript中的属性值从对象数组中选择
我有一些JSON对象,它们有几个属性,比如id和名称。我将它们存储在一个JavaScript数组中,然后基于dropdownlist,我希望根据其id从JavaScript数组中检索对象 假设一个对象有id和名称,如何从数组变量中选择它们根据JavaScript中的属性值从对象数组中选择,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有一些JSON对象,它们有几个属性,比如id和名称。我将它们存储在一个JavaScript数组中,然后基于dropdownlist,我希望根据其id从JavaScript数组中检索对象 假设一个对象有id和名称,如何从数组变量中选择它们 var ObjectsList = data; var id = $("#DropDownList > option:selected").attr("value"); ObjectsList["id=" + id]; 因为您已经有了jQuery,所以
var ObjectsList = data;
var id = $("#DropDownList > option:selected").attr("value");
ObjectsList["id=" + id];
因为您已经有了jQuery,所以可以使用: 查找满足筛选函数的数组元素。原始阵列不受影响 比如说:
var matches = $.grep(ObjectsList, function(e) { return e.id == id });
[
{ id: ... },
{ id: ... },
...
]
这将为您留下一个匹配项数组,这些匹配项来自数组matches
中的ObjectsList
。以上假设ObjectsList
具有如下结构:
var matches = $.grep(ObjectsList, function(e) { return e.id == id });
[
{ id: ... },
{ id: ... },
...
]
如果您知道只有一个匹配项,或者您只想要第一个匹配项,则可以这样做:
for(var i = 0, m = null; i < ObjectsList.length; ++i) {
if(ObjectsList[i].id != wanted_id)
continue;
m = a[i];
break;
}
// m is now either null or the one you want
for(var i = 0, m = null; i < ObjectsList.length; ++i) {
if(ObjectsList[i].id == wanted_id) {
m = ObjectsList[i];
break;
}
}
您需要显示您正试图从中选择的实际JSON数据,以便我们能够建议如何访问它。这样做的技巧只是将[0]放在最后,以选择与筛选器匹配的新数组的第一个元素。