js如何匹配两个对象数组!不要嵌套循环
var arr1 = [{id:1,name:"a",y:true},{id:2,name:"b",y:true},{id:3,name:"c",y:true},{id:4,name:"d",y:true},{id:5,name:"e",y:true}];
var arr2 = [{id:1,name:"a",y:true},{id:2,name:"b",y:true}];
怎么用arr2匹配arr1,如果arr1中某项的id等于arr2某项的id,就给arr1中相应相等的项的y改为false;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
没有嵌套 :)
利用Array的sort方法及concat方法引用复制的特点来实现查找
concat方法引用复制
sort方法
如果2者相同,那么不交换彼此的位置,也就是说如果arr1中的某项a和arr2中的某项b相同,那么排序结束后,
a会一一直保持在b元素的前面
使用map 函数咯
注意的是该方法由于使用了Object.assign导致效率较差。
改成这样会比较快
http://jsperf.com/resolve2array1010000004329153/5
将数组arr1转为对象(其实是个map),然后直接查找就行了。