Javascript 如何将新的计算数组对象添加到现有数组

Javascript 如何将新的计算数组对象添加到现有数组,javascript,arrays,Javascript,Arrays,我有一个数组 data = [ {location: "Phnom Penh", sale: 1000 }, {location: "Kandal", sale: 500 }, {location: "Takeo", sale: 300 }, {location: "Kompot", sale: 700 }, {location: "Prey Veng", sale: 100 }, {location

我有一个数组

data = [
        {location: "Phnom Penh", sale: 1000 },
        {location: "Kandal", sale: 500 },
        {location: "Takeo", sale: 300 },
        {location: "Kompot", sale: 700 },
        {location: "Prey Veng", sale: 100 },
        {location: "Seam Reap", sale: 800 }
      ];
新计算对象:

Total1 = Phnom Penh + Takeo
谁能帮我这样做?谢谢

您应该先添加
4
位置的销售额,然后添加阵列中的对象。这样的办法应该行得通

data.push({location: "Total1", sale: data["Phnom Penh"].sale + data["Takeo"].sale})
data.push({location: "Total2", sale: data["Prey Veng"].sale + data["Seam Reap"].sale})

还请注意,
sale
可能不是整数,
+
可能不会添加它们,因此您应该使用。

您可以使用一个定制函数,过滤掉相关对象,然后计算它们的销售总额

在这里,数据和位置数组被传递到
getSales
。所需的对象已输出,然后用于对其销售额求和。然后,可以使用来自旧对象的数据构建新对象,并添加新数据

const数据=[
{地点:“金边”,出售:1000},
{地点:“干丹”,出售:500},
{地点:“Takeo”,销售:300},
{地点:“Kompot”,出售:700},
{地点:“波萝荣”,出售:100},
{地点:“Seam Ream”,销售:800}
];
函数getSales(数据、arr){
返回数据
//返回arr所在的当前对象
//包括当前对象位置
.过滤器(el=>arr.includes(el.location))
//对返回的对象进行迭代,并对其销售额求和
.reduce((acc,{sale})=>acc+=sale,0);
}
常数输出=[
…数据,
{地点:'Total1',销售:getSales(数据,['金边','Takeo']),
{位置:'Total2',sale:getSales(数据,['Prey-Veng','Seam-reau']}
];

控制台。注销您尝试了什么但没有成功?创建2个求和变量。循环遍历数组,并根据
位置
值更新变量。请添加您在快速找到该方法后尝试的代码。这就是你要找的吗?我可以再给你推荐一个吗。如果我有另一个计算对象:Total3=Kompot-seameaw;Total4=金边+武夫+贡布-干丹+接缝,如果这有助于你可能应该接受它,然后问一个新问题。我没有时间考虑您的新需求,但其他人可能会提供帮助。
data = [
        {location: "Phnom Penh", sale: 1000 },
        {location: "Kandal", sale: 500 },
        {location: "Takeo", sale: 300 },
        {location: "Kompot", sale: 700 },
        {location: "Prey Veng", sale: 100 },
        {location: "Seam Reap", sale: 800 },
        {location: "Total1", sale: 1300 },
        {location: "Total2", sale: 900 }
      ];
data.push({location: "Total1", sale: data["Phnom Penh"].sale + data["Takeo"].sale})
data.push({location: "Total2", sale: data["Prey Veng"].sale + data["Seam Reap"].sale})