我想遍历一个字符串数组,并根据字符串是什么,制作一个对象数组。
例如,如果数组为:
[a,a,a,b,b,c,d]
我想遍历数组,并创建一个具有键和值对的对象,这些对象将键和值相继加起来:
[{a:1},{a:2},{a:3},{b:1},{b:2},{c:1},{d:1}]
我该怎么做?
我已经尝试了映射,但是我无法获得如何添加到前一个对象的值(a:1-> a:2)
答案 0 :(得分:3)
在映射时,您需要存储每个项目出现次数的单独计数,并在每次迭代时增加适当的键。您可以为此使用Map
:
const input = ['a','a','a','b','b','c','d'];
const map = new Map();
console.log(
input.map(char => {
const count = (map.get(char) || 0) + 1;
map.set(char, count);
return { [char]: count };
})
)