Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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_Typescript - Fatal编程技术网

Javascript 从另一个对象数组的字符串数组中筛选值

Javascript 从另一个对象数组的字符串数组中筛选值,javascript,typescript,Javascript,Typescript,我试图只获取对象数组中不存在的字符串 var objects = [{name:'a',is:false},{name:'b',is:false},{name:'c',is:false}]; var strings = ['a','b','z','x']; let result = strings.filter(o1 => !objects.includes(o2=> o2.name === o1)); console.log(result) 因此,从对象数组中,结果应仅为“z”

我试图只获取对象数组中不存在的字符串

var objects = [{name:'a',is:false},{name:'b',is:false},{name:'c',is:false}];
var strings = ['a','b','z','x'];

let result = strings.filter(o1 => !objects.includes(o2=> o2.name === o1));
console.log(result)

因此,从
对象
数组中,结果应仅为“z”和“x”

,您可以创建(
查找
),其中键为
名称
属性,值为
的否定版本
属性

Map {
  'a': true,
  'b': true,
  'c': true
}
然后,您可以使用此查找来筛选字符串数组。如果映射的值为
true
,则可以将其从数组中删除(返回false),否则,如果映射没有当前字符串,则可以将其保留在数组中。通过预处理对象数组创建贴图/对象,您无需在
过滤器()中使用内部循环,如果数组大小增加,则可以提高代码的整体效率

const objects=[{name:'a',is:false},{name:'b',is:false},{name:'c',is:false}];
常量字符串=['a','b','z','x'];
const lookup=newmap(objects.Map({name,is})=>[name,!is]);
const result=strings.filter(v=>!lookup.get(v));

控制台日志(结果)
对象
数组中,您可以创建(
查找
),其中键作为
名称
属性,值作为
属性的否定版本

Map {
  'a': true,
  'b': true,
  'c': true
}
然后,您可以使用此查找来筛选字符串数组。如果映射的值为
true
,则可以将其从数组中删除(返回false),否则,如果映射没有当前字符串,则可以将其保留在数组中。通过预处理对象数组创建贴图/对象,您无需在
过滤器()中使用内部循环,如果数组大小增加,则可以提高代码的整体效率

const objects=[{name:'a',is:false},{name:'b',is:false},{name:'c',is:false}];
常量字符串=['a','b','z','x'];
const lookup=newmap(objects.Map({name,is})=>[name,!is]);
const result=strings.filter(v=>!lookup.get(v));

控制台日志(结果)
使用
map
简化数组,然后使用filter和include查找不属于
对象的
字符串

var objects=[{name:'a',is:false},{name:'b',is:false},{name:'c',is:false}];
变量字符串=['a','b','z','x'];
让name=objects.map(dataItem=>dataItem.name)
让filteredNames=strings.filter(stringItem=>!name.includes(stringItem))

console.log(filteredNames)
用于简化数组,然后使用filter和include查找不属于
对象的
字符串

var objects=[{name:'a',is:false},{name:'b',is:false},{name:'c',is:false}];
变量字符串=['a','b','z','x'];
让name=objects.map(dataItem=>dataItem.name)
让filteredNames=strings.filter(stringItem=>!name.includes(stringItem))
log(filteredNames)
现在允许回调函数

不使用此选项,请查找:

var objects=[{name:'a',is:false},{name:'b',is:false},{name:'c',is:false}];
变量字符串=['a','b','z','x'];
让result=strings.filter(o1=>!objects.find(o2=>o2.name==o1));
log(结果)
现在允许回调函数

不使用此选项,请查找:

var objects=[{name:'a',is:false},{name:'b',is:false},{name:'c',is:false}];
变量字符串=['a','b','z','x'];
让result=strings.filter(o1=>!objects.find(o2=>o2.name==o1));
console.log(结果)