gpt4 book ai didi

Javascript/ES6 查找唯一元素并在数组中对它们进行计数

转载 作者:行者123 更新时间:2023-12-03 09:36:01 28 4
gpt4 key购买 nike

以一个假想的已售商品数组为例,奇怪的是,我们只对商品名称和值(value)感兴趣:

let items = [
{ title: "Trumping the Horns", value: 5.95 },
{ title: "Rocking about", value: 20.00 },
{ title: "Trumping the Horns", value: 5.95 }
]

我知道我可以很容易地获得具有唯一值的数组:

const uniqueSales = [...new Set(items.map(item => item.title))];

但是,举例来说,我想知道我售出的每件商品有多少,或者它们的累计值(value)?所以:

[
{ title: "Trumping the Horns", amount: 2 },
{ title: "Rocking about", amount: 1 }
]

是否也可以映射它们,而不必对该数组进行一些疯狂的排序和迭代?最好是单线。不在服务器端执行此操作的主要原因是我对同一数据有相当多的不同操作,只发送一次并让客户端处理数据的操作和呈现似乎是最正确的。

最佳答案

你可以使用 Map并存储对结果数组的新插入对象的引用。

var items = [{ title: "Trumping the Horns", value: 5.95 }, { title: "Rocking about", value: 20.00 }, { title: "Trumping the Horns", value: 5.95 }],
result = items.reduce(
(map => (r, a) => (!map.has(a.title) && map.set(a.title, r[r.push({ title: a.title, amount: 0 }) - 1]), map.get(a.title).amount++, r))(new Map),
[]
);

console.log(result)

关于Javascript/ES6 查找唯一元素并在数组中对它们进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42480855/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com