当前位置:首页 > 前端开发 > javascript > 正文内容

js数组去重的几种方法

Miao3年前 (2018-10-18)javascript3321

includes去重

arr.includes(指定元素(必填),指定索引值(可选,默认值为0)),有值返回true,没有则返回false。

let arr = [-2, 1, 9, -3, -2, 6, 6, 7];
function test(arr) {
    let arrNew = [];
    for (let i = 0, len = arr.length; i < len; i++) {
        if (!arrNew.includes(arr[i])) {
            arrNew.push(arr[i]);
        }
    }
    return arrNew;
}
console.log(test(arr)); // -2, 1, 9, -3, 6, 7

sort去重(默认升序)

let arr = [5, 4, 1, 9, 1, 8, 3, 4, 9, 7, 0];
function test(arr) {
    arr = arr.sort();
    let arrNew = [arr[0]];
    for (let i = 1, len = arr.length; i < len; i++) {
        if (arr[i] !== arr[i - 1]) {
            arrNew.push(arr[i]);
        }
    }
    return arrNew;
}
console.log(test(arr)); // 0, 1, 3, 4, 5, 7, 8, 9

indexOf去重

array.indexOf(item,statt) 返回数组中某个指定的元素的位置,没有则返回-1。

let arr = [1, 0, -1, 0, 1, 8, 3, 8];
function test(arr) {
    let arrNew = [];
    for (let i = 0, len = arr.length; i < len; i++) {
        if (arrNew.indexOf(arr[i]) === -1) {
            arrNew.push(arr[i]);
        }
    }
    return arrNew;
}
console.log(test(arr)); // 1, 0, -1, 8, 3

splice去重(双for循环,ES5常用)

let arr = [1, 5, 6, 8, 7, 3, 8, 5, 9, 7, 5];
function test(arr) {
    for (let i = 0, len = arr.length; i < len; i++) {
        for (let j = i + 1, len = arr.length; j < len; j++) {
            if (arr[i] === arr[j]) {
                arr.splice(j, 1);
                j--;
            }
        }
    }
    return arr;
}
console.log(test(arr)); // 1, 5, 6, 8, 7, 3, 9

filter去重

let arr = [1, 2, 8, 9, 9, 8, 3, 2, 5];
function test(arr) {
    return arr.filter(function(item, index) {
        return arr.indexOf(item, 0) === index;
    });
}
console.log(test(arr)); // 1, 2, 8, 9, 3, 5

扫描二维码推送至手机访问。

版权声明:本文由Miao发布,版权归作者所有,如需转载请注明出处。

本文地址:https://www.wmlike.com/?id=35

标签: javascript
分享给朋友:

相关文章

jquery全部版本下载(持续更新)

注意事项: jquery2.0以上版本不再支持IE6/7/8,请根据项目需求选择版本;jquery官网引用地址经常会出现打不开的情况,尽量不要调用官网地址;个人建议:最好下载保存到自己服务器; 版...

js中字符串的替换 replace()方法

日常经常遇到替换字符串的场景,如:1.后端数据需要前端自己转换下格式;2.因兼容问题,日期格式“-”转“/”等,这里我们会用到replace()方法,下面来看看具体介绍。 语法:string...

js动态修改页面标题title

业务场景:跳转页面后,获取后台数据后更改标题! <!DOCTYPE html> <html> <head> <meta cha...

获取url参数值、修改url参数值

获取url参数的值function getQuery(name) { var reg = new RegExp("(^|&)" + name + "=(...

javascript实现年月日三级联动

html <select name="year"></select> <select name="month"><...

25个正则表达式,让代码效率提高80%

在日常开发中,正则表达式是非常有用的,正则表达式在每个语言中都是可以使用的,他就跟JSON一样,是通用的。在日常开发中,了解一些常用的正则表达式,能大大提高你的工作效率,今天就给大家分享25个开发...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。