Javascript 如何比较对象数组和字符串数组?
我需要比较两个阵列:Javascript 如何比较对象数组和字符串数组?,javascript,arrays,Javascript,Arrays,我需要比较两个阵列: var objects = [{name: 'a', is: false}, {name: 'b', is: false}, {name: 'c', is: false}]; var strings = ['a', 'b']; 如果objects from objects等于string from strings中的一个,则将字段更改为true,但我不知道如何执行该操作您可以使用和 includes()检查字符串中是否存在name map() var objects
var objects = [{name: 'a', is: false}, {name: 'b', is: false}, {name: 'c', is: false}];
var strings = ['a', 'b'];
如果objects from objects等于string from strings中的一个,则将字段更改为true,但我不知道如何执行该操作您可以使用和
includes()
检查字符串中是否存在name
map()
var objects=[{name:'a',is:false},{name:'b',is:false},{name:'c',is:false}];
变量字符串=['a','b'];
设res=objects.map(x=>({…x,is:strings.includes(x.name)}))
log(res)
您可以迭代对象数组,并使用indexOf检查字符串数组中是否存在当前对象的name属性
你可以用
希望这对你有帮助 虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。当问一个问题时,拥有一段您尝试过的代码总是很好的。
var objects = [{name:'a',is:false},{name:'b',is:false},{name:'c',is:false}];
var strings = ['a','b'];
objects.forEach(function(obj) {
if (strings.indexOf(obj.name)!=-1) obj.is = true;
})
console.log(objects);
var objects = [{name: 'a', is: false}, {name: 'b', is: false}, {name: 'c', is: false}];
var strings = ['a', 'b'];
var result = Array.from(objects, (o)=>{ return {...o, is:strings.includes(o['name'])}; });
console.log(result);