[英]how to add new calculate array object to existing array
我有一个数组
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
Total 2 = Prey Veng + Seam Reap
然后我想将这两个对象添加到现有数组(数据)
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 }
];
有人请帮助我这样做吗? 谢谢
您可以使用定制函数过滤出相关对象,然后计算它们的总销售额。
此处将数据和位置数组传递给getSales
。 过滤掉需要的对象,然后使用reduce来求和它们的销售额。 然后,您可以使用旧对象中的数据构建新对象,并添加新数据。
const 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 } ]; function getSales(data, arr) { return data // Return the current object where the arr // includes the current object location .filter(el => arr.includes(el.location)) // Iterate over those returned objects and sum their sales .reduce((acc, { sale }) => acc += sale, 0); } const out = [ ...data, { location: 'Total1', sale: getSales(data, ['Phnom Penh', 'Takeo']) }, { location: 'Total2', sale: getSales(data, ['Prey Veng', 'Seam Reap']) } ]; console.log(out);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.