在JavaScript中将具有重复值的数组转换为具有重复出现次数的对象
假设我们有一个数组字符串,其中包含一些重复的条目,例如:
const arr = ['California','Texas','Texas','Texas','New York','Missouri','New Mexico','California'];
我们需要编写一个包含一个这样的数组的JavaScript函数。然后,我们的函数应该构造一个对象数组,该对象数组包含每个唯一条目的对象,以及一个包含其在原始数组中的计数的属性“count”。
因此,上述数组的最终输出应如下所示:
const output = [ {'name':'California', 'count':2}, {'name':'Texas', 'count':3}, {'name':'New York', 'count':1}, {'name':'Missouri', 'count':1}, {'name':'New Mexico', 'count':1}, ];
示例
为此的代码将是-
const arr = ['California','Texas','Texas','Texas','New York','Missouri','New Mexico','California']; const findOccurrences = (arr = []) => { const res = []; arr.forEach(el => { const index = res.findIndex(obj => { return obj['name'] === el; }); if(index === -1){ res.push({ "name": el, "count": 1 }) } else{ res[index]["count"]++; }; }); return res; }; console.log(findOccurrences(arr));
输出结果
控制台中的输出将是-
[ { name: 'California', count: 2 }, { name: 'Texas', count: 3 }, { name: 'New York', count: 1 }, { name: 'Missouri', count: 1 }, { name: 'New Mexico', count: 1 } ]