javascript - JS reducer : return combined array of objects

标签 javascript ecmascript-6

我有这样两个对象数组:

const first = [{text: 'sometext1', applicable: true}, {text: 'sometext2', applicable: false}, {text: 'sometext3', applicable: true}];

const second = [{text: 'sometext1', applicable: true}, {text: 'sometext2', applicable: true}];

因此我想得到这样的数组:

const result = [{text: 'sometext1', applicable: true}, {text: 'sometext2', applicable: true}, {text: 'sometext3', applicable: true}];

so => 只需将第一个数组中所有不存在的项目添加到第二个数组,并按“text”键过滤。

可以通过reducer来实现吗?或者也许有更好的方法?

最佳答案

只需迭代第一个数组并检查第二个数组中是否存在每个项目,如果不存在则插入第二个数组。

first.forEach((item) => {
    const index = second.findIndex((st) => st.text === item.text);
    if(index < 0) {
        second.push(item);
    }
})

关于javascript - JS reducer : return combined array of objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54401098/

相关文章:

javascript - Javascript 中的全局变量生命周期

javascript - this.refs 与表单使用 react 中的值

Javascript 内联条件 : major than 0 return result if not return 0

Javascript Math.pow(10, -x) 意外结果

javascript - 在网页中使用 zxing Barcode Scanner

javascript - Fabricjs loadFromJSON 性能

javascript - 访问 Sourcetree 中的旧分支时出错

javascript - 如何将数据从 javascript 传递到 c# (asp.net mvc)

javascript - 如何扩展或更改链中的 jquery 焦点函数?

ecmascript-6 - 整个文件中可访问的常量变量