首页 > 解决方案 > 检查它 2 个对象具有相同的属性值

问题描述

我有 2 个对象:

1. tempArr = { bookRetail: 14.99, hierarchyDescription: "GUYS DENIM PANTS [ 0151 ]", isSelected: true, isAvailableInPivot: "Y", style: "VICE NWH NAVY WHITE DC [ M450MBON ]"}

2. itemArr = { bookRetail: 14.99, hierarchyDescription: "GUYS DENIM PANTS [ 0151 ]", isSelected: false, isAvailableInPivot: "Y", style: "VICE NWH NAVY WHITE DC [ M450MBON ]"}

我想比较这两个对象而不考虑isSelected属性值,如果两个对象相同(isSelected 元素值除外),我想将itemArr 的 isSelected更新为 true。

if (JSON.stringify(tempArr) === JSON.stringify(itemArr)) {
  itemArr.isSelected = true;
}

目前上面的代码比较了两个数组,包括 isSelected元素,比较时如何排除它。

标签: javascriptarraysjson

解决方案


如果像@Yevgen Gorbunkov 正确指出的那样比较JSON字符串对您有用,那么您可以使用解构并摆脱isSelected这种方式:

const withoutSelected = ({ isSelected, ...other }) => JSON.stringify(other);

if (withoutSelected(tempArr) === withoutSelected(itemArr)) {
  itemArr.isSelected = true;
}

推荐阅读