Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何比较对象数组和字符串数组?_Javascript_Arrays - Fatal编程技术网

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);