浏览数组以获取特定数量的值

时间:2017-01-11 13:33:09

标签: javascript arrays

我有一个这样的数组:

->orderBy('id', 'DESC');

结果(一个新数组)应该只显示在这个数组中正好是2次的所有值,例如:a

你们知道我怎么能意识到这一点吗?感谢

2 个答案:

答案 0 :(得分:0)

您可以先使用forEach循环创建对象并添加属性,然后在filter上使用Object.keys来返回数组。

var arr = ['a','a','b','b','b','c'];

var o = {}
arr.forEach(e => o[e] = (o[e] || 0) + 1);
var result = Object.keys(o).filter(e => o[e] == 2);

console.log(result)

答案 1 :(得分:0)

请尝试以下代码:

var arr = ['a','a','b','b','b','c'];

var numberOfOccurrences = {};

arr.forEach(function (item) {
    numberOfOccurrences[item] = (numberOfOccurrences[item] || 0) + 1;
});

var duplicates = Object.keys(numberOfOccurrences).filter(function (item) { return numberOfOccurrences[item] === 2 });

console.log(duplicates);