如果在节点中我们有2个具有一对一关系的对象数组,并且我们想要有效地匹配它们,那么是否有一些函数用于以更清洁的方式执行以下操作?
var users = [{id:1},{id:2}]
var userDetails =[{userId:1, eyeColor:'red'},{userId:2, eyeColor:'blue'}]
users.map((u)=>{
userDetails.find((detail,index)=>{
return u.id == u.userId ? u.eyeColor = userDetails.splice(index, 1)[0] : false;
})
})
答案 0 :(得分:1)
我认为您的代码已经足够简化了。或者,您可以使用过滤器
var filteredArray = users.filter(function(first){
return userDetails.filter(function(second){
return first.id == second.userId;
});
});
或者您可以查看lodash
库以获得更简化的方式