var a = [ 'ping','ewewe','w','js','windvane' ,'ping'];
如何把数组出现大于一次的item提取出来,并注明它出现的次数
var a = [ 'ping','ewewe','w','js','windvane' ,'ping'];
如何把数组出现大于一次的item提取出来,并注明它出现的次数
// 你要的应该是这个json
var a = [ 'ping','ewewe','w','js','windvane' ,'ping', 'js','windvane' ,'ping'];
var obj = {};
var json = {};
for (let i = 0, len = a.length; i < len; i++) {
if (obj[a[i]]) {
obj[a[i]] += 1
json[a[i]] = obj[a[i]]
} else {
obj[a[i]] = 1
}
}
console.log(obj, json)
供参考
var a = [ 'ping','ewewe','w','js','windvane' ,'ping']
var result = a.reduce((map, item) => map.set(item, (map.get(item) || 0) + 1), new Map())
Array.from(result) // [["ping",2],["ewewe",1],["w",1],["js",1],["windvane",1]]
Array.from(result.keys()) // [ 'ping', 'ewewe', 'w', 'js', 'windvane' ]
// 去掉一个的
Array.from(result).filter(item => item[1] > 1) // [ [ 'ping', 2 ] ]
13 回答12.7k 阅读
7 回答1.8k 阅读
3 回答1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1.1k 阅读✓ 已解决
返回的数组中,count为出现的次数,el代表元素。代码在下面,我之前也有写过这样的文章,你可以参考下。
编写自己的代码库(javascript常用实例的实现与封装)