今天面试遇到这个题目, 如何计算数组各项出现的次数?
可惜没答对, 事后打开电脑一顿敲, 结果是得出来了. 但是总感觉有更好的方法
有没大佬指点指点.
let sourceArr = [1, 3, 3, 2, 5, 5, 5, 6, 7, 7] // 源数组
let resArr = [] // 结果
let temp = [] // 暂存
sourceArr.forEach(item => {
let count = 0 // 初始化计数
sourceArr.forEach(sub => {
if (item === sub) count++
})
if (!temp.includes(item)) { // 过滤重复出现
temp.push(item)
resArr.push([item, count])
}
})
console.log(resArr) // [ [ 1, 1 ], [ 3, 2 ], [ 2, 1 ], [ 5, 3 ], [ 6, 1 ], [ 7, 2 ] ]
// 好看的格式
let newArr = resArr.map(item => {
return item[0] + '*' +item[1]
})
console.log(newArr) // [ '1*1', '3*2', '2*1', '5*3', '6*1', '7*2' ]