【问题标题】:Angular5 compare 2 array of (JSON) objects and splice when found matchAngular5比较2个(JSON)对象数组并在找到匹配时拼接
【发布时间】:2018-05-30 08:01:35
【问题描述】:

如果我有 2 个带有 (JSON) 对象的数组,并且我想比较它们并在匹配时拼接一个对象,那么最好的方法是什么。

例子:

数组 1:

[{test: 1, test2: 2}, {test: 3, test2: 5}, {test: 6, test2: 8}]

数组 2:

[{test: 6, test2: 8}, {test: 1, test2: 2}]

现在我们看到 Array 1 index 0 和 Array 2 index 1 是匹配的。 我现在要做的是从数组 1 中拼接对象。

有没有好的/聪明的方法来实现这一点?

谢谢!

【问题讨论】:

    标签: arrays angular compare array-splice


    【解决方案1】:

    试试这个,使用过滤器,过滤器将遍历array1并返回一个匹配条件的元素数组(array2中不存在的元素)

    array2.foreach((element) => {
     array1 = array1.filter((element1) => {
       return element1 !== element;
     })
    })
    

    【讨论】:

    • Thx @FatehMohamed 我将对其进行测试,一旦它工作我将接受它已解决首先我将研究代码的确切作用
    • 感谢您的解决方案工作完美
    【解决方案2】:
        using filter you can remove duplicate by compare tow array object in loop and filter return result array 
    
        this.array2.forEach((item2) => {
    
         this.array1 = this.array1.filter((item1) => {
           //use JSON.stringify() to compare tow objects
           return JSON.stringify(item1) !== JSON.stringify(item2);
         })
    
        })
        console.log(this.array1);
    

    【讨论】:

    • 请在您的答案中添加更多细节。为什么这行得通?你解决了什么问题?这让 OP 和未来的每个人都更容易理解他们的问题。
    猜你喜欢
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    相关资源
    最近更新 更多