Select from array of objects based on property value in JavaScript
本问题已经有最佳答案,请猛点这里访问。
我有JSON对象,它有几个属性,如id和name。 我将它们存储在JavaScript数组中,然后基于下拉列表,我想根据其id从JavaScript数组中检索对象。
假设一个对象有id和name,我如何从我的数组变量中选择它们?
1 2 3 | var ObjectsList = data; var id = $("#DropDownList > option:selected").attr("value"); ObjectsList["id=" + id]; |
既然你已经有了jQuery,你可以使用
Finds the elements of an array which satisfy a filter function. The original array is not affected.
所以像这样:
1 | var matches = $.grep(ObjectsList, function(e) { return e.id == id }); |
这将为您提供数组
1 2 3 4 5 | [ { id: ... }, { id: ... }, ... ] |
如果您知道只有一场比赛或者您只想要第一场比赛,那么您可以这样做:
1 2 3 4 5 6 7 | 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 |
1 2 3 4 5 6 | for(var i = 0, m = null; i < ObjectsList.length; ++i) { if(ObjectsList[i].id == wanted_id) { m = ObjectsList[i]; break; } } |