使用 jQuery,我想使用 ids 数组来查找 allObjects
数组内具有匹配 Id
值的对象。
var arrayOfIds = [1, 4, 5];
var allObjects = [{"Id":"1", "name":"aa"},{"Id":"2", "name":"bb"} ,{"Id":"3", "name":"cc"} ,{"Id":"4", "name":"dd"}, {"Id":"5", "name":"ee"}, {"Id":"6", "name":"ff"}, {"Id":"7", "name":"gg"}, {"Id":"8", "name":"hh"}, {"Id":"9", "name":"ii"}];
结果等于:
[{"Id":"1", "name":"aa"}, {"Id":"4", "name":"dd"}, {"Id":"5", "name":"ee"}]
到目前为止,我只能使用以下方法来提取单个对象:
var result = $.grep(arrayOfIds, function(e) { return e.Id == 3; });
我觉得好像可以通过以某种方式修改上面的 $.grep 查询来实现答案,但无法弄清楚。
最佳答案
为此您不需要 jQuery。您可以使用Array.prototype.filter()
过滤 allObjects
和 Array.prototype.includes()
检查对象 Id
属性是否在 arrayOfIds
中:
allObjects.filter(x=> arrayOfIds.includes(Number(x.Id)))
参见demo on JS Bin .
关于javascript - 将对象数组与 id 数组进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37073903/