在对象数组上使用map()检查差异
check difference using map() on arrays of object
所以我想过使用map()
,但我被卡住了。我想返回arr2
,但想通过将其与arr
进行比较来提示用户是否有更改。使用下面的方法,如果arr2有任何缺失项,我得到了未定义的id。
https://jsfiddle.net/b13rbjyv/
var arr = [{
id: 1,
name: 'something'
}, {
id: 2,
name: 'something2'
}]
var arr2 = [{
id: 1,
name: 'something'
}, {
id: 2,
name: 'something2'
}]
var result = arr.map(function(obj, i) {
if (obj.id == arr2[i].id) {
return obj;
}
})
document.write(JSON.stringify(result))
您需要使用过滤器
var result = arr.filter(function(obj, i) {
return obj.id == arr2[i].id;
})
如果你想改变对象,就应该使用map。例如,如果你只需要一个id数组,那么你就应该使用它。例如,你想获得id列表,那么
var result = arr
.filter(function(obj, i) { return obj.id == arr2[i].id; })
.map(function(obj){return obj.id;});
map
为数组的每个给定元素返回一个元素。看起来您实际上需要的是使用filter
。也许是这样的:
var result = arr.filter((elem, index) => elem.id === arr2[index].id);
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 如何检查管道中未定义的项目
- 主干-不管怎样,检查事件以前是否绑定过
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 递归使用 eval() 是检查程序执行的好方法吗?
- 检查onsubmit doenst work jquery contactform上的函数
- JavaScript 检查隐藏字段中的值并将其设置为隐藏字段值
- API密钥使用和检查示例
- 如何让程序检查所选单词中是否有按键
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 用于检查数组中是否存在元素的javascript自定义方法
- 如何检查字符串的一部分与数组匹配
- Jquery如何检查今天的时间大于使用给定时间
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- 使用javascript反复检查用户在facebook上的登录状态
- 使用map来检查是否为真'不起作用
- 在对象数组上使用map()检查差异
- 如何检查两个 Map 对象是否相等
- 检查 JavaScript 对象是 Map 还是 Set (ECMAScript 2015)