1 删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。
var arr = [‘a‘,‘a‘,‘a‘,‘a‘,‘b‘,‘c‘,‘d‘,‘b‘,‘a‘,‘e‘]; Array.prototype.distinct = function(){ var ret = []; for (var i=0; i < this.length; i++){ for (var j = i+1; j<this.length;){ if (this[i] === this[j]){ ret.push(this.splice(j, 1)[0]); } else{ j++; } } } return ret; } alert(arr.distinct());//[a,a,a,a,b]
2 删除数组中重复的条目,返回值是删除重复条目之后的新数组。
var arr = [‘a‘,‘a‘,‘a‘,‘a‘,‘b‘,‘c‘,‘d‘,‘b‘,‘a‘,‘e‘];
//原型方法Array.prototype.unique = function() { var o = {}, r = []; //o哈希表, r为临时数组 for (var i = 0; i < this.length; i++){ var v = this[i]; if (!o[v]){ //判断如果表中没有当前项 o[v] = true; //就存入hash表 r.push(v); //把当前数组的当前项push到临时数组里面 } } return r; }alert(arr.unique());[a, b, c , d, e] //传参函数方法
function unique(arr) {
var result = [], hash = {};
for (var i = 0, elem; (elem = arr[i]) != null; i++) {
if (!hash[elem]) {
result.push(elem);
hash[elem] = true;
}
}
return result;
}
alert(unique(arr))
4 求数组中某个元素重复的个数
function count(arr, element){ var count = 0; for (i = 0; i < arr.length; i++){ if (arr[i] == element){count++} } alert(count) } var arr = new Array(1,2,22,3,5,3,2,6,3); count(arr, 2)
时间: 2024-10-13 15:24:42