题目描述
我的代码
function deleteNth(arr,n){
// ...
var re = [];
var arr1 = {};
for(i=0; i<arr.length; i++){
!arr1[arr[i]] ? arr1[arr[i]] = 1 : arr1[arr[i]] += 1;
if(arr1[arr[i]] <= n)
re.push(arr[i]);
}
return re;
}
Clever
function deleteNth(arr,x){
var obj = {};
return arr.filter(function(number){
obj[number] = obj[number] ? obj[number] + 1 : 1
return obj[number] <= x
});
}
Key
-
定义统计数组中每个元素出现的次数的变量应该是个对象:
var arr1 = {}
; 而不是一个数组 var arr1 = []; (这样每个元素对应一个出现次数,之后就可检索出,出现某个次数的元素) -
给一个数组(var re = [];)赋值:不是var re = [0];而是应该用
.push()
方法,re.push(arr[i])
;