数组去重

1、(jquery)

jQuery.unique( array );

jQuery.unique( array )返回: Array

描述: 删除数组中重复元素。只处理删除DOM元素数组,而不能处理字符串或者数字数组(试了下,有的版本应该可以

2、(jQuery)

var arr = ["1","2","3","4","5","4","3"];
var uniqueArr = [];
$.each(arr, function(i, el){
    if($.inArray(el, uniqueArr) === -1) uniqueArr.push(el);
});

jQuery.inArray( value, array [, fromIndex ] )返回: Number

描述: 在数组中查找指定值并返回它的索引(如果没有找到,则返回-1)。

  • 添加的版本: 1.2jQuery.inArray( value, array [, fromIndex ] )

    • value
      类型: Anything
      要查找的值。
    • array
      类型: Array
      一个数组,通过它来查找。
    • fromIndex
      类型: Number
      数组索引值,表示从哪里在开始查找。默认值是0,这将查找整个数组。

$.inArray()方法类似于JavaScript的原生.indexOf()方法,没有找到匹配元素时它返回-1。如果数组第一个元素匹配value(参数) ,那么$.inArray()返回0。

因为JavaScript将0视为false(即 0 == false, 但是 0 !== false),如果我们检查在array中存在value,我们只需要检查它是否不等于(或大于)-1。

3、(javascript)

不用jQuery, 你可以先排序,然后遍历此Array, 比较前后两个元素的值.

var arr = [9, 9, 111, 2, 3, 4, 4, 5, 7];
var sortedArr = arr.sort(); //这是按字符串排的序
var results = [];
for (var i = 0; i < arr.length - 1; i++) {
    if (sortedArr[i + 1] == sortedArr[i]) {
        results.push(sortedArr[i]);
    }
}

alert(results);
//修正: 16.09.21

var arr = [1,2,3,1,4,2,1];
var newarr = [];
arr.sort();
for(var i = 0; i< arr.length; i++){
if(i === 0){
newarr.push(arr[i])
}else if(arr[i] !== arr[i-1]){
newarr.push(arr[i])
}
}
console.log(newarr)

 

4、(javascript)

function unique(array){
    var n = [];//临时数组
    for(var i = 0;i < array.length; i++){
        if(n.indexOf(array[i]) == -1) n.push(array[i]);
    }
    return n;
}
 
原文地址:https://www.cnblogs.com/darr/p/5028626.html