判断两个数组的值是否相等

我有下面两个数组,
我想看下如果b数组下的namea数组下有的话我就让他的flag=true

var a = ['a','b','c'];
var b = [
    {name: 'a',flag: false,},
    {name: 'b',flag: false,},
    {name: 'c',flag: false,},
    {name: 'd',flag: false,}
]
阅读 8.4k
6 个回答

for(let _b of b){_b.flag = a.indexOf(_b.name) > -1;}

b = b.map(function (obj) {
    if (a.indexOf(obj.name) >= 0) {
        obj.flag = true;
    }
    return obj;
});
b.forEach(v=>a.indexOf(v.name)!==-1 && (v.flag=true))

两层循环

for(var i = 0 ; i< b.length ; i++){
    for(var j = 0;j < a.length ; j ++){
        if(b[i].name == a[j]){
            b[i].flag = true;
        }
    }
}

b = b.map(item => {return item.flag = a.indexOf(item.name) > -1 })

/*for(var i=0,len=a.length;i<len;i++){
    if(b[i].name==a[i]){
        flag=true;
        //so?
    }
}*/
for (var i = 0; i < b.length; i++) {
                    if(a.indexOf(b[i].name)>=0){//数组内是否包含
                        b[i].flag = true;
                    }
                }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题