提问者:小点点

如何在JavaScript中从对象数组中提取特定属性(即键/值)?


我有下面的对象数组。

data1 = [{id: 111, option: "ONE", actualPrice: 600, price: "450"}, {id: 112, option: "TWO", actualPrice: 700, price: "850"}, {id: 113, option: "THREE", actualPrice: 800, price: "450"}, {id: 111, option: "ONE", actualPrice: 600, price: "450"}]

现在我更改ID111和112的price属性。 现在更新的对象数组看起来像

data1 = [{id: 111, option: "ONE", actualPrice: 600, price: "650"}, {id: 112, option: "TWO", actualPrice: 700, price: "440"}, {id: 113, option: "THREE", actualPrice: 800, price: "450"}, {id: 111, option: "ONE", actualPrice: 600, price: "450"}]

现在,我想提取唯一的特定属性,以对象数组的形式表示,特定键的值被改变了。 一些类似于下面的内容,并希望传入名为handleUpdate的函数

因此,我希望object数组变为以下格式const modifiedObj=[{actualPrice:600,Price:“650”},{actualPrice:700,Price:“440”}]

handleUpdate(modifiedObj);

共3个答案

匿名用户

null

const data1 = [{id: 111, option: "ONE", actualPrice: 600, price: "450"}, {id: 112, option: "TWO", actualPrice: 700, price: "850"}, {id: 113, option: "THREE", actualPrice: 800, price: "450"}, {id: 111, option: "ONE", actualPrice: 600, price: "450"}]

const data2 = [{id: 111, option: "ONE", actualPrice: 600, price: "650"}, {id: 112, option: "TWO", actualPrice: 700, price: "440"}, {id: 113, option: "THREE", actualPrice: 800, price: "450"}, {id: 111, option: "ONE", actualPrice: 600, price: "450"}]

let modifiedObj = [];
for(let i=0;i<data1.length;i++){
  if(data1[i].price!==data2[i].price){
    modifiedObj.push({actualPrice: data1[i].actualPrice, price:data2[i].price});
  }
}

console.log(modifiedObj);

匿名用户

请参阅以下链接。 我想这会让你有更好的了解。 您是否尝试过array.prototype.some()->; 如果您需要找到满足所提供的测试功能的任何元素。

处理数组对象

您可以参考以下代码:

let res = []
data1.forEach(i => {if(data1[i].price != data2[i].price)} 
    {
         res.push({actualPrice: data[i].actualPrice, 
                   price:data2[i].price})
    })

console.log(res)

匿名用户

试试这个。 这段代码将创建一个新的对象数组modifiedobj,其中只有actualPrice和price。

const data1 = [{id: 111, option: "ONE", actualPrice: 600, price: "650"}, {id: 112, option: "TWO", actualPrice: 700, price: "440"}, {id: 113, option: "THREE", actualPrice: 800, price: "450"}, {id: 111, option: "ONE", actualPrice: 600, price: "450"}]

const modifiedObj = data1.map(({actualPrice, price}) => ({actualPrice, price}))

输出将采用此格式

[{actualPrice: 600, price: "650"}, {actualPrice: 700, price: "440"}, {actualPrice: 800, price: "450"}, {actualPrice: 600, price: "450"}]