我对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,
},
]
答案 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));