如何比较具有相同对象属性的两个值?

问题描述

我有以下两个数据:

const data1 = 
[
  {
    "Name": "Shoes","SKU": "SKU001","Quantity": 4
  },{
    "Name": "Sweater","SKU": "SKU002","Quantity": 2
  }
]
const data2 =
[
  {
    "DN": "DN0001",{
    "DN": "DN0002","Quantity": 4
  }
]

我想比较每个SKU data1的数量和每个SKU data2的数量(相同与否)。我怎么能比较呢?

解决方法

const data1 = 
[
  {
    "Name": "Shoes","SKU": "SKU001","Quantity": 4
  },{
    "Name": "Sweater","SKU": "SKU002","Quantity": 2
  }
]
const data2 =
[
  {
    "DN": "DN0001",{
    "DN": "DN0002","Quantity": 4
  }
]

let result = data1.map(d1 => data2.find(d2 => d2.SKU === d1.SKU)?.Quantity === d1.Quantity);

console.log(result);

,

你可以像下面这样尝试

const data1 =
    [
        {
            "Name": "Shoes","Quantity": 4
        },{
            "Name": "Sweater","Quantity": 2
        }
    ]
const data2 =
    [
        {
            "DN": "DN0001",{
            "DN": "DN0002","Quantity": 4
        }
    ]

const result = data1.map((list) => {
    const hasItem = data2.find((data) => data.SKU === list.SKU);
    if (hasItem) {
        return hasItem.Quantity === list.Quantity;
    } else {
        return false
    }

})

console.log('res',result); // [true,false]