js如果两个数组中有相同对象 给对象添加属性

[{id:'11'},{id:'22'},{id:'33'}] [{id:'11'},{id:'33'}]
想要下面结果
[
{id:'11',follwed:true},
{id:'22',follwed:false},
{id:'33',follwed:true}
]

阅读 5.9k
4 个回答
    let arr1 = [{id:'11'},{id:'22'},{id:'33'}];
    let arr2 = [{id:'11'},{id:'33'}];
    let arr = [...arr1, ...arr2];
    let obj = {};
    arr.forEach(item=>{
        if(obj[item.id]){
            obj[item.id].follwed = true
        }else{
            obj[item.id] = item
            obj[item.id].follwed = false
        }
    });
    let result = Object.values(obj);
    console.log(result)

手动遍历添加呗

vue组件内data中
list:[ {id:'11'},{id:'22'},{id:'33'}] [{id:'11'},{id:'33'} ],
mounted:function{
var _this = this;
this.list.map(function(item){

_this.$set(item,'follwed',true)
})

}
这个是给数组对象添加属性的set

var arr1 = [{id:'11'},{id:'22'},{id:'33'}];
var arr2 = [{id:'11'},{id:'33'}];
var arr = arr1.concat(arr2);
var obj = {}
var newArr = arr.reduce((pre, cur) => {
    obj[cur.id] ? '' : obj[cur.id] = true && pre.push(cur);
    return pre
}, [])
console.log(newArr)
推荐问题