【发布时间】:2017-07-30 15:44:51
【问题描述】:
我要做的是找出数组元素在数组中重复的次数,将元素连同它在对象中的重复次数一起推送,然后删除元素及其所有重复项。
目前我有这个功能:
function getDuplicates(arr) {
let lastIndex = null;
let obj = {};
for ( let i = 0; i < arr.length; i++ ) {
lastIndex = arr.lastIndexOf(arr[i]);
obj[arr[i]] = lastIndex + 1;
arr.splice(0, lastIndex + 1 );
}
console.log(obj);
}
getDuplicates([ 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 5, 6 ]);
哪些日志:{ '1': 4, '2': 2, '3': 4, '5': 5 }
它对前 3 个数字(1,2 和 3)效果很好,但 4 不显示,5 搞砸了,6 由于 lastIndex +1 而没有显示。我错过了什么还是有更好的方法来做到这一点?
谢谢。
【问题讨论】:
-
您可以简单地创建一个新数组并推送独特的元素。
-
你先用谷歌搜索答案了吗? stackoverflow 上有很多解决方案。
标签: javascript arrays sorting duplicates