删除对象数组javascript/react native中两个重复字段中的一个

删除对象数组javascript/react native中两个重复字段中的一个,javascript,arrays,reactjs,react-native,duplicates,Javascript,Arrays,Reactjs,React Native,Duplicates,我有一个返回name:string和quantity:number的对象数组,问题是数组中有许多对象具有相同的名称字段值,但数量值不同,因此我想显示每个重复名称的所有数量的总和。我的代码在这里: const productsArray = [{ name: "lamp", quantity: 10 }, {name: "glass", quantity: 4}, {name:"lamp", quantity: 5}] Lamp是重复的,但是它有不同的数量值,所以我想将这些数量值合并为一个总量,

我有一个返回name:string和quantity:number的对象数组,问题是数组中有许多对象具有相同的名称字段值,但数量值不同,因此我想显示每个重复名称的所有数量的总和。我的代码在这里:

const productsArray = [{ name: "lamp", quantity: 10 }, {name: "glass", quantity: 4}, {name:"lamp", quantity: 5}]
Lamp是重复的,但是它有不同的数量值,所以我想将这些数量值合并为一个总量,并且只显示一次名称

期望结果

产品名称:台灯 产品数量:15

产品名称:玻璃 产品数量:4


请帮帮我你是说这样的事吗

let productsObj = {};
for (let i = 0; i < productsArray.length; i++) {
  let item = productsArray[i];
  if (!!(productsObj[item.name])) {
    productsObj[item.name] += item.quantity;
  } else {
    productsObj[item.name] = item.quantity;
  }
}   
这里有一个选择:-

const productsArray=[{name:“lamp”,数量:10},{name:“glass”,数量:4},{name:“lamp”,数量:5}]
var输出=[];
productsArray.forEach(功能(项){
var existing=output.filter(函数(v,i){
返回v.name==item.name;
});
if(现有长度){
var existingIndex=output.indexOf(现有[0]);
输出[existingIndex].quantity+=item.quantity;
}否则{
输出推送(项目);
}
});

console.dir(输出)
我可能会结合使用
reduce
Object.entries
map
来实现这一点

const productsArray=[{name:“lamp”,数量:10},{name:“glass”,数量:4},{name:“lamp”,数量:5}];
const combined=productsArray.reduce((acc,el)=>{
if(附件[el.name]==未定义){
acc[el.name]=0;
}
附件【el.名称】+=el.数量;
返回acc;
}, {});
const final=Object.entries(合并).map([名称,数量])=>({
名称
量
}));

控制台日志(最终)替代方法是执行以下操作:

const productsArray = [];
for (let name in productsObj) {
   productsArray.push({ name: name, quantity: productsObj[name] });
}
const productsArray = [
  { name: 'lamp', quantity: 10 },
  { name: 'glass', quantity: 4 },
  { name: 'lamp', quantity: 5 },
]

const quantities = productsArray.reduce((accum, curr) => {
  const value = accum[curr.name] || 0
  return { ...accum, [curr.name]: value + curr.quantity }
}, {})

const result = Object.keys(quantities).map(product => ({ [product]: quantities[product] }))
console.warn(result)