javascript - javascript:通过某个id比较两个对象数组的内容并返回true或false
问题描述
我需要一点帮助来比较两个对象数组,并通过使用两个数组内的 id 来查看数组 A 是否具有数组 B 的相同内容,例如:
example false:
ArrayObjectA = [{
id: 1,
name: josh,
age: 31
},{
id: 2,
name: Kyle,
age: 21}];
ArrayObjectB = [{
id: 1,
name: josh,
age: 31
}];
ArrayObjectB content is equals to ArrayObjectA => false
example true:
ArrayObjectA = [{
id: 1,
name: josh,
age: 31
},{
id: 2,
name: Kyle,
age: 21}];
ArrayObjectB = [{
id: 1,
name: josh,
age: 31
},{
id: 2,
name: Kyle,
age: 21}];
ArrayObjectB content is equals to ArrayObjectA => true
我找到了一个名为 lodash 的库,但我不知道是否有用。
任何帮助表示赞赏。
解决方案
我们可以从每个数组中获取 ids 列表并检查所有元素是否相等
const compareArrays = (arr1, arr2) => {
const ids1 = arr1.map(v => v.id).sort()
const ids2 = arr2.map(v => v.id).sort()
return ids1.length === ids2.length && ids1.every((v, ind) => v === ids2[ind])
}
推荐阅读
- html - 在 Excel 上打开 htm 文件时,如何看到“大数字”(+14 位)?
- sql - Teradata SQL 排除错误
- visual-studio-code - 如何在 VSCode 的 launch.json 中设置秘密环境变量以进行调试?
- javascript - 流类型:“可选函数参数”和“可能类型”之间的区别
- html - 移动屏幕尺寸上的 DIV 垂直对齐
- java - 如何在 Java 中使用 TimeZone 获取当前时间戳
- django - 如何将一个模型的字段链接到另一个模型的特定字段
- ios - CollectionViewController 未调整使用 InputAccessoryView 显示的键盘
- php - PHP shell_exec 在 deb 9 上访问系统服务
- java - Gmail 收件箱和 Java