确定 JavaScript 中对象数组之间的差异
比较数据集时经常会出现对比两个对象数组的概念。本文探讨了一种提取两个数组之间不同元素的方法,确保保留特定对象属性。
考虑以下输入数组:
Result 1: [ { value: "0", display: "Jamsheer" }, { value: "1", display: "Muhammed" }, { value: "2", display: "Ravi" }, { value: "3", display: "Ajmal" }, { value: "4", display: "Ryan" } ] Result 2: [ { value: "0", display: "Jamsheer" }, { value: "1", display: "Muhammed" }, { value: "2", display: "Ravi" }, { value: "3", display: "Ajmal" } ]
期望的结果是这些数组之间的差异,这将生成一个仅包含结果 1 中唯一元素的数组:
[ { value: "4", display: "Ryan" } ]
JavaScript 提供了可以优雅地完成此操作的本机方法 任务。通过定义一个根据对象属性评估对象相等性的比较函数,您可以利用 onlyInLeft() 函数来识别仅存在于左(原始)数组中的元素。同样的过程可以应用于右侧(新)数组。
const isSameUser = (a, b) => a.value === b.value && a.display === b.display; const onlyInA = onlyInLeft(result1, result2, isSameUser); const onlyInB = onlyInLeft(result2, result1, isSameUser); const result = [...onlyInA, ...onlyInB];
结果变量随后将包含一个数组,其中区分两个输入数组。这种方法提供了一种灵活的解决方案来比较对象数组,同时保留用于比较的特定属性。
以上是如何查找两个 JavaScript 对象数组之间的差异?的详细内容。更多信息请关注PHP中文网其他相关文章!