javascript - 将对象数组与 id 数组进行比较

标签 javascript jquery arrays

使用 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()过滤 allObjectsArray.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/

相关文章:

javascript - for循环内的click函数

javascript - 使用哪个正则表达式将字符串中的字体列表转换为数组?

javascript - d3.csv 饼图示例

php - 使网页在网络托管域上运行所需的帮助

javascript - 如何在 if 语句中使用 jquery 回调函数?

javascript - 操作列中的所有字符串

javascript - 访问嵌入文件的元素

c - 垂直/水平翻转二维数组

arrays - 使用 printf 函数格式化间距 C

arrays - vb6中的变量声明问题