js 中如何去掉数组中的重复的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 中如何去掉数组中的重复的数据相关的知识,希望对你有一定的参考价值。

可以使用js的for循环筛选实现去掉数组中的重复的数据。

具体步骤如下:

需要准备的材料分别是:电脑、浏览器、ultraedit。

1、在ue编辑器中新建一个空白的html文件,js文件。

2、在ue编辑器中输入以下html代码。

3、在ue编辑器中输入以下js代码。

4、编辑完成以后,在ue编辑器中点击保存,格式选择UTF8无BOM。

5、在浏览器中打开此html文件,可以看到最终想要实现的去掉数组中的重复的数据效果。

参考技术A

需要准备的材料分别有:电脑、html编辑器、浏览器。

1、首先,打开html编辑器,新建html文件,例如:index.html。

2、在index.html中的<script>标签,输入js代码:

var a = [1, 56, 24, 56, 67], b = [];

for (var i = 0; i < a.length; i++)

if (b.indexOf(a[i]) === -1)

b.push(a[i]);

document.body.innerText = b;

3、浏览器运行index.html页面,此时打印出了数组去重后的结果。

参考技术B 这就是数组去重了。。。
var str=['hello','node','element','node','hello','blue','red'];
var str1=[];
function first(args)
for(i=0;i<args.length;i++)
if(str1.indexOf(args[i])<0)
str1.push(args[i])


return str1;

first(str);
console.log(str1)
参考一下。。。从str数组中依次插入数据到str1数组中,str1.indexOf(args[i])这段是表示查询str1数组中是否存在str中要插入的数据。。返回false,即-1,表示没有,则将str中此数据插入到str1中,否则不执行,进行下一次循环。。本回答被提问者采纳
参考技术C

整理了网上的几种方法,并测试了性能效率问题,找了一个最优的贴出来供使用:

Js 高性能数组去重

javascript高性能数组去重

看了网上很多大神的写法,蠢蠢欲动,于是自己照着也写了几个,选出来最优的一个拿出来与大家分享一下。


具体的使用方法和代码详见:

Js 高性能数组去重

参考技术D 也可以写成str.indexOf(str[i])==i 。 indexOf 只要查询到首发就停, 后面的不找,所以首发的索引值与循环的索引值是一致的,由于indexof始终只找首发,首发的索引值肯定跟2发 3发的索引值对不上,就是false。初学我自己说一遍加深理解

5.去重(去掉数组中重复的数据)

方法一: 

        /*
         * 1.创建一个新数组,把原数组中的第一个元素插入到新数组中
         * 2.遍历原数组中的每一个元素分别和新数组中的每一个元素进行比较
         */
        //原数组
        var arr = [8,11,20,5,20,8,0,2,4,0,8];
        // 新数组
        var  t = [];//var  t = [8,11];
        t[0] = arr[0];
        //arr中的每个元素
        for(var i=0;i<arr.length;i++){
            //t中的每个元素
            for(var k = 0;k<t.length;k++){
                    
                //当原数组中的值和新数组中的值相同的时候,就没有必要再继续比较了,跳出内循环
                if(t[k] == arr[i]){
                break;
                }
             //拿原数组中的某个元素比较到新数组中的最后一个元素还没有重复
            if(k == t.length-1){
                    //将数据插入新数组
                    t.push(arr[i]);
                }
            }
        }
        console.log(t);    

方法二:

  

//每一个元素和其右边元素都对比下,如果相同,则删除后面那个元素
        var arrNew = [3,6,23,7,9,4,7,4];
        for( var i = 0 ; i < arrNew.length ; ++i){
            for( var j = i+1 ; j < arrNew.length; ++j){
                if(arrNew[i] == arrNew[j]){
                    arrNew.splice(j,1);
                    j--;
                }
            }
        }
        console.log(arrNew);

 

以上是关于js 中如何去掉数组中的重复的数据的主要内容,如果未能解决你的问题,请参考以下文章

JS去除数组中重复的数字

如何去掉一个数组的重复元素:数组去重

js如何去除数组中重复项

js 去掉数组对象中的重复对象

js怎么去除数组中的重复的数据

js去除数组里的负数