输入:任意数组
输出:唯一元素及其数量
到目前为止,我已经能够找到唯一元素,但是我无法弄清楚如何将它们与每个元素的计数相关联。有什么建议(可能的话不使用功能-刚开始但尚未使用功能)?
var arr = [3, 4, 4, 3, 3];
var new_arr = [];
for (i = 0; i < arr.length; i++) {
if (new_arr.includes(arr[i])) {
// pass
} else {
new_arr.push(arr[i]);
}
}
console.log(new_arr);
答案 0 :(得分:1)
使用对象而不是数组来跟踪计数。 key
是有问题的数字,而其value
是计数。
const res = [3, 4, 4, 3, 3].reduce((acc,cur)=>{
if(acc[cur]) acc[cur]++;
else acc[cur] = 1;
return acc;
}, {});
console.log(res);
或者没有任何方法:
var arr = [3, 4, 4, 3, 3];
var new_arr = {};
for (i = 0; i < arr.length; i++) {
if (new_arr[arr[i]]) {
new_arr[arr[i]]++;
} else {
new_arr[arr[i]] = 1;
}
}
console.log(new_arr);