码迷,mamicode.com
首页 > 编程语言 > 详细

关于数组技巧的总结

时间:2015-01-21 17:57:14      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

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)

 

关于数组技巧的总结

标签:

原文地址:http://www.cnblogs.com/xingweb/p/4239489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!