javascript数组从数组中找到相同的值及其计数

时间:2019-06-16 15:54:37

标签: javascript arrays ecmascript-6

我想从数组及其出现的地方找到重复的值:-

const names = ['John', 'Paul',, 'Paul', 'Paul' 'George', 'John'];

它应该打印:-

john - 2
Paul - 3
George - 1

2 个答案:

答案 0 :(得分:0)

使用reduce。创建键为name且对象的出现(计数)为值的对象。

 const names = ['John', 'Paul', 'Paul', 'Paul', 'George', 'John'];

 const output = names.reduce((accu, name) => {
    accu[name] = (accu[name] || 0) + 1;
    return accu;
 }, {});

 console.log(output);

答案 1 :(得分:0)

使用地图和过滤器

var a= ['John', 'Paul', 'Paul', 'Paul' ,'George', 'John'];
var obj={};
a.map(e=>{
obj[e]=a.filter(x=>x==e).length;
})
console.log(obj)