【发布时间】:2020-02-10 19:01:45
【问题描述】:
所以我有这个功能
function counting(arr) {
result = {};
for (var i = 0; i < arr.length; i++) {
if (!result[arr[i]]) result[arr[i]] = 0;
++result[arr[i]];
}
return result;
}
arr = [1, 2, 3, 4, 6, 6, 7, 8, 9, 5, 2, 6, 1, 8]
console.log(counting(arr))
我得到了这个结果
{ '1': 2,
'2': 2,
'3': 1,
'4': 1,
'5': 1,
'6': 3,
'7': 1,
'8': 2,
'9': 1 }
但我真正想要的是删除每个元素只有 1 次出现而让其他元素出现不止一次的功能,如下所示
{ '1': 2,
'2': 2,
'6': 3,
'8': 2}
【问题讨论】:
-
所以查看条目并减少它。
-
NB:更简单的循环代码:
let key = arr[i]; result[key] = (result[key] || 0) + 1 -
@Alnitak 用我的循环替换你的代码我得到这个结果 { '1': 1 }
-
不,它是用于循环内部的,用于替换
if (!element) element = 0测试
标签: javascript arrays function javascript-objects