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,但绝对不需要复制。只需使用现有对象构建新数据并将其分配给新的空对象。副本一无所获。我有一种强烈的感觉,我们可以以某种方式使用解构<代码>{数量,售价}=购物车