就是有一个数组,例如var numArr = ["A", "C", "B", "A", "C", "D", "A", "C"]
,如何筛选出相同的元素,还有相同元素的个数
为情所困2017-06-28 09:28:34
["A", "C", "B", "A", "C", "D", "A", "C","B"].reduce((r,v)=>{
r[0].has(v)?r[1][v]?r[1][v]++:r[1][v]=2:r[0].add(v);
return r;
},[new Set,{}])[1]
// {A: 3, C: 3, B: 2}
是这种效果么?选出重复(出现次数大于等于2)的元素并统计每个重复元素出现的次数?
女神的闺蜜爱上我2017-06-28 09:28:34
可以用 Map
["1", "2", 2, 0, -0, NaN, NaN, [], [], {}, {}, undefined, , , null].reduce((m, k) => {
return m.set(k, (m.get(k) || 0) + 1);
}, new Map());
遵循以下规则:
NaN = NaN
+0 = -0
"1" != 1
{} != {}
[] != []
undefined != null
空元素不计