Javascript 删除对象内部的对象属性

Javascript 删除对象内部的对象属性,javascript,Javascript,我有一个宾语 cart { KDR010011: { barcode: "0" brand: "Kapal Api" category: "KEBUTUHAN DAPUR" cost_price: "107569.66490299824" cost_price_per_piece: 896.413874191652 name: "Kapal Api 25g sp mix" product_id: "KDR010011" qty

我有一个宾语

 cart {
  KDR010011: {
    barcode: "0"
    brand: "Kapal Api"
    category: "KEBUTUHAN DAPUR"
    cost_price: "107569.66490299824"
    cost_price_per_piece: 896.413874191652
    name: "Kapal Api 25g sp mix"
    product_id: "KDR010011"
    qty: 1
    qty_per_box: 120
    selling_price: 116000
    selling_price_per_piece: 962.5
  },
  KDR010125: {
    barcode: ""
    brand: "Kapal Api"
    category: "KEBUTUHAN DAPUR"
    cost_price: "110317.63859070961"
    cost_price_per_piece: 835.7396862932546
    name: "ABC Susu 31g"
    product_id: "KDR010125"
    qty: 5
    qty_per_box: 132
    selling_price: 113000
    selling_price_per_piece: 863.6363636363636
  }
}
我想移除这个属性,得到我想要的结果:

cart {
  KDR010011: {
    qty: 1
    selling_price: 116000
  },
  KDR010125: {
    qty: 5
    selling_price: 113000
  }
}
我正在使用,结果是:

我该怎么办?

您可以尝试以下方法:

const newCart = {...cart}
Object.keys(newCart).forEach(key => {
  newCart[key] = {
    qty: newCart[key].qti,
    selling_price: newCart[key].sailing_price
  }
}

通过在对象的关键点上循环并将每个关键点的值分配回原始对象,可以轻松实现这一点。如果不想修改原始对象,只需将关键点指定给新对象即可

就我个人而言,我会改变我的数据结构,这样购物车就是一个对象数组,每个对象都有
KDR010011
键作为属性

const obj={
KDR010011:{
条形码:“0”,
品牌:“卡帕尔Api”,
类别:“科布图汉达普”,
成本价格:“107569.66490299824”,
每件成本价:896.4138741191652,
名称:“卡帕尔Api 25g sp混合物”,
产品编号:“KDR010011”,
数量:1,
每箱数量:120,
售价:116000,
每件售价:962.5,
},
KDR010125:{
条码:“,
品牌:“卡帕尔Api”,
类别:“科布图汉达普”,
成本价:“110317.63859070961”,
每件成本价格:835.7396862932546,
名称:“ABC SUSU31G”,
产品编号:“KDR010125”,
数量:5,
每箱数量:132,
售价:113000,
每件售价:863.636,
}
}
Object.keys(obj.forEach)(key=>obj[key]={
数量:obj[键]。数量,
售价:obj[key]。售价,
})

console.log(obj)
对象中需要逗号

我觉得我可以使用比这里更好的解构

const cart={
KDR010011:{
条形码:“0”,
品牌:“卡帕尔Api”,
类别:“科布图汉达普”,
成本价格:“107569.66490299824”,
每件成本价:896.4138741191652,
名称:“卡帕尔Api 25g sp混合物”,
产品编号:“KDR010011”,
数量:1,
每箱数量:120,
售价:116000,
每件售价:962.5
},
KDR010125:{
条码:“,
品牌:“卡帕尔Api”,
类别:“科布图汉达普”,
成本价:“110317.63859070961”,
每件成本价格:835.7396862932546,
名称:“ABC SUSU31G”,
产品编号:“KDR010125”,
数量:5,
每箱数量:132,
售价:113000,
每件售价:863.636
}
}
让newCart={}
Object.keys(cart).forEach(key=>newCart[key]={qty:cart[key].数量,售价:cart[key].售价})

console.log(newCart)
请访问,查看和。做一些研究,搜索相关话题等;如果您遇到问题,请发布您的尝试,记录输入和预期输出。如果您遇到问题,请尝试并共享。为什么要增加对象副本的开销?如果不想覆盖原始对象,只需使用原始对象并分配给新的空对象。@JamesCoyle,这取决于操作要求,如果他不想复制,他可以重新分配cart=newcart,但绝对不需要复制。只需使用现有对象构建新数据并将其分配给新的空对象。副本一无所获。我有一种强烈的感觉,我们可以以某种方式使用解构<代码>{数量,售价}=购物车