比较两个对象列表,一旦匹配,然后在React JS中返回对象列表

时间:2019-09-11 12:35:57

标签: reactjs

我对ReactJs很陌生。我有一个比较两个列表的要求,然后匹配的对象应作为输出返回。这些比较应基于对象中的唯一键,即id,endTime。

请查看以下代码。

从下面的两个列表中,我需要基于唯一键(id,endTime)比较它们两个,一旦它们匹配或相等,则需要将这些对象作为列表返回。

请帮助我。

所选/匹配的对象应作为输出返回。

const apiResponse = [
    {
        id: 5520437,
        startTime: 1498665761714,
        endTime: 1498665824487,
    },
    {
        id: 5520436,
        startTime: 1498665761714,
        endTime: 1498665824488,
    },
    {
        id: 5520435,
        startTime: 1498665761714,
        endTime: 1498665824489,
    },
    {
        id: 5520434,
        start Time: 1498665761714,
        endTime: 1498665824490,
    }
]

const mySelectedData = [
    {
        id: 5520437,
        start Time: 1498665761714,
        endTime: 1498665824487,
    },
    {
        id: 5520436,
        start Time: 1498665761714,
        endTime: 1498665824488,
    },
]

2 个答案:

答案 0 :(得分:0)

我希望这是您想要的。我同时比较列表和apiResponse的给定元素是否也是所选数据项-添加到结果列表中

const tada = apiResponse.reduce(
  (result, item) =>
    mySelectedData.some(el => el.endTime === item.endTime)
      ? [...result, item]
      : result,
  []
);

codesandbox-> https://codesandbox.io/s/runtime-smoke-bywti?fontsize=14

答案 1 :(得分:0)

您可以使用过滤器

function myCompartor(arr){
    return function(c){
        return arr.filter(function(o){
            return o.id == c.id
        }).length == 0;
    }
}

var common = apiResponse.filter(mySelectedData(mySelectedData));