js数组去重方法集合

//第一种方法,新建一个空数组,将原来的数组循环逐个与新数组的成员做比较,如果新数组没有该元素就push进来
var arr = [‘a‘, 1, 1, 1, 2, 4, 4, ‘b‘, ‘c‘, ‘a‘];
        var newArr = [];
        var len = arr.length;
        for (i = 0; i < len; i++) {
            var flag = false;
            for (var member of newArr) {
                if (member === arr[i]) {
                    flag = true;
                    break
                }
            }
            if (!flag) {
                newArr.push(arr[i])
            }
        }
        console.log(‘1111111111111111‘, newArr)

  

//第二种,两层循环,相互比较,如果相同就删除
        var arr2 = [1, 2, 3, ‘a‘, ‘b‘, 3, 2, ‘c‘, ‘a‘];
        var len2 = arr2.length;
        while (len2-- > 0) {
            for (let i = 0; i < len2; i++) {
                if(arr2[i]==arr2[len2]){
                    arr2.splice(i,1)
                    break
                }

            }
        }
        console.log(‘2222222222222‘,arr2)

  

//3.借助indexOf()方法判断此元素在该数组中首次出现的位置下标与循环的下标是否相等
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
function rep(arr) {
    for (var i = 0; i < arr.length; i++) {
        if (arr.indexOf(arr[i]) != i) {
            arr.splice(i,1);//删除数组元素后数组长度减1后面的元素前移
            i--;//数组下标回退
        }
    }
    return arr;
}
var a1 = rep(arr);
console.log(a1);

  

//4.借助indexOf()和一个空数组
var arr3=[‘f‘,‘c‘,1,2,3,4,4,4,‘v‘,‘f‘];
        var newArr3=[];
        for(i=0;i<arr3.length;i++){
            if(newArr3.indexOf(arr3[i])<0){
                newArr3.push(arr3[i])
            }
        }
        console.log(‘33333333333333‘,newArr3)

  

//5.filter方法
        var arr4 = [1, 2, 3, 1,2,5,6]
        var arr4temp=arr4.filter(function(ele,index,self){
            return self.indexOf(ele)===index;
        })
        console.log(arr4temp)

  

原文地址:https://www.cnblogs.com/samsara-yx/p/9460688.html

时间: 2024-08-08 17:48:38

js数组去重方法集合的相关文章

js数组去重方法

这里提供了3种方法,都比较常见,可以一种一种往下看,越往下,性能越高. 第一种是比较常规的方法,思路如下: 1.构建一个新的数组,新的数组同其中一个一样,存放结果 2.for循环中每次从另一个数组中取出一个元素,用这个元素循环与结果数组对比 3.若结果数组中没有该元素,则存到结果数组中 代码如下: var arr1 = [1,2,3,4,5,6]; var arr2 = [9,8,7,6,5,4]; var arr = unitArray( arr1,arr2 ); alert(arr); fu

三种常用的js数组去重方法

第一种是比较常规的方法 思路: 1.构建一个新的数组存放结果 2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比 3.若结果数组中没有该元素,则存到结果数组中 Array.prototype.unique1 = function(){ var res = [this[0]]; for(var i = 1; i < this.length; i++){ var repeat = false; for(var j = 0; j < res.length; j++){ if(t

js 数组去重方法总结

var arr = [1, 1, 'true', 'true', true, true, 15, 15, false, false, undefined, undefined, null, null, NaN, NaN, 'NaN', 'NaN', 0, 0, 'a', 'a', {}, {}]; /* * ES3 的方法 */ // 方法一 思路:新建空数组,利用双层for循环,逐一取出传入数组的项与新数组中的每一项做对比,如果没有相同的则将该项插入新数组中,如果对比项相同则跳出当前循环回到父

JS数组遍历方法集合

就让我们在逆战中成长吧,加油武汉,加油自己 1.for循环 使用零时变量将长度存起来,当数组较大时优化效果才会比较明显. var ar1=[2,4,6,8] for(var i=0;i<ar1.length;i++){ console.log(i) console.log(ar1[i]) } 2.foreach循环 遍历数组中每个数,没有返回值 使用break不能中断循环,使用return也不能返回到外层函数 var ar1=[2,4,6,8] ar1.foreach((item,index,a

js 数组去重方法

1):indexOf():声明一个新的空数组,遍历原数组,判断如果新数组中不存在该项,则push到新数组中 2)hash;声明一个新的数组和对象,遍历原数组,如果对象不具备该项值属性,给新对象添加该项值属性,并把该项push进新数组, 3)sort();对原数组进行排序,声明一个新的数组push原数组第一项的值,遍历原数组,如果不等于新数组尾项的值,则push 总结:个人觉得方法一逻辑更清晰,实现也更简单 原文地址:https://www.cnblogs.com/llmatch/p/918639

js数组去重方法封装

Array.prototype.unique = function (){ var temp = {}, arr = [], len = this.length; for(var i = 0; i < len; i++){ if(!temp[this[i]]){ temp[this[i]] = 'abc'; arr.push(this[i]); } } return arr; } 原文地址:https://www.cnblogs.com/summer-qd/p/10954364.html

js数组去重的4种方法

js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法 贴入代码前 ,先对浏览器Array对象进行支持indexOf和forEach的polyfill Array.prototype.indexOf = Array.prototype.indexOf || function(item) { for (var i = 0, j = this.length; i < j; i++) { if (this[i] === item) { return i; } } return -1; } Ar

js 数组去重的方法总结

想沉淀一下自己.代码改变世界~~~ 1.利用Array.from代码如下 1 var arr = [1,2,3,4,3,2,1] 2 function unique(arr){ 3 return Array.from(new Set(arr)) 4 } 5 console.log(unique(arr)) 2.利用es6(...)拓展运算符.demo 1 var arr = [1,2,3,4,3,2,1] 2 function unique(arr){ 3 return [...new Set(

JS数组去重的几种常见方法

JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ if(temp.indexOf(array[i]) == -1){ temp.push(array[i]); } } ret