首页 > 解决方案 > 如何根据javascript中的关键属性获取两个对象数组之间的差异

问题描述

我有两个这样的对象数组。

 Array1=[
   { value: "0", display: "Jamsheer",desc:"maths" },
   { value: "1", display: "Muhammed",desc:"science" },
   { value: "2", display: "Ravi",desc:"english" },
   { value: "3", display: "Ajmal",desc:"english" },
   { value: "4", display: "Ryan",desc:"english" }
   }];

   array2=[
   { value: "0", display: "Jamsheer",desc:"maths" },
   { value: "1", display: "Muhammed",desc:"science" },
   { value: "2", display: "Ravi varma",desc:"english" },
   { value: "3", display: "Ajmal",desc:"english and tamil" },
   { value: "4", display: "Ryan",desc:"english" }
   }];

在这里我必须根据值比较 display 和 desc

预期输出:

final_output=[
{ value: "2", display: "Ravi varma",desc:"english" },
{ value: "3", display: "Ajmal",desc:"english and tamil" }

];

标签: javascriptnode.js

解决方案


const final_output = array2.filter(el => {
  const otherEl = Array1.find(x => x.value === el.value);
  return el.display !== otherEl.display || el.desc !== otherEl.desc;
});

推荐阅读