Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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_Ecmascript 6_Javascript Objects - Fatal编程技术网

Javascript 向数组和对象数组中的公共项添加属性

Javascript 向数组和对象数组中的公共项添加属性,javascript,arrays,ecmascript-6,javascript-objects,Javascript,Arrays,Ecmascript 6,Javascript Objects,我有一个像['A','B','F']这样的数组和一个对象数组 [ { name:'A', prop1:'value1' }, { name:'C', prop3:'value3' }, { name:'E', prop7:'value7' }, ] 我想筛选出数组中存在名称的对象,并将属性exists:true添加到对象数组中,然后返回更新后的对象数

我有一个像
['A','B','F']
这样的数组和一个对象数组

[
    {
        name:'A',
        prop1:'value1'
    },
    {
        name:'C',
        prop3:'value3'
    },
    {
        name:'E',
        prop7:'value7'
    },

]
我想筛选出数组中存在名称的对象,并将属性
exists:true
添加到对象数组中,然后返回更新后的对象数组

因此,对于上述情况,它应该返回

[
    {
        name:'A',
        prop1:'value1',
        exists:true
    },
    {
        name:'C',
        prop3:'value3'
    },
    {
        name:'E',
        prop7:'value7'
    },

]

我想这可以在JavaScript集的帮助下完成,但不确定如何完成。这也可以在线性复杂度中实现吗?

要实现线性时间复杂度,可以将角色数组转换为一个集合。现在只需在对象数组中循环

const characters=['A','B','F'];
常量对象=[
{
姓名:'A',
prop1:'value1'
},
{
姓名:'C',
prop3:“value3”
},
{
姓名:'E',
prop7:“value7”
},
];
常量字符集=新集合(字符);
常量输出=objects.map(obj=>{
如果(charSet.has(obj.name))obj.exists=true;
返回obj;
});

这需要
O(n+m)
,其中n是字符数组的长度,m是对象数组的长度。

要实现线性时间复杂度,可以将字符数组转换为一个集合。现在只需在对象数组中循环

const characters=['A','B','F'];
常量对象=[
{
姓名:'A',
prop1:'value1'
},
{
姓名:'C',
prop3:“value3”
},
{
姓名:'E',
prop7:“value7”
},
];
常量字符集=新集合(字符);
常量输出=objects.map(obj=>{
如果(charSet.has(obj.name))obj.exists=true;
返回obj;
});

这需要
O(n+m)
,其中n是字符数组的长度,m是对象数组的长度。

这很有用。谢谢,这很有帮助。谢谢