千家信息网

JavaScript数组如何实现去重

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍了JavaScript数组如何实现去重,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法一:set :不是一种数据类型
千家信息网最后更新 2025年02月02日JavaScript数组如何实现去重

这篇文章主要介绍了JavaScript数组如何实现去重,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

方法一:set :不是一种数据类型,是一种数据结构;成员唯一

let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) {        let s  = new Set(ary);        // Array.from : 将set数据结构转成真正的数组;        return  Array.from(s)    }    unique(arr);

方法二:对象属性名不能重复

let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) {        let obj = {};        for(let i=0;i

方法三:indexOf

let arr = [12,1,12,3,1,88,66,9,66]; function unique(ary) {        let newAry = [];        for(let i=0;i

方法四:sort

let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) {       let a = ary.sort(function (a,b) {           return a-b;       });       for(let i=0;i

方法五:includes :包含;如果数组包含那一项,返回true;不包含返回false;

let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) {        let newAry = [];        let len = ary.length;        for(let i=0;i

方法六:hasOwnProperty : 检测属性名是否是对象的一个私有属性;返回一个布尔值;

let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) {        let obj = {};        return ary.filter(function (item,index,a) {            // item : 数组每一个成员            // index: 成员对应的索引            // a : 整个数组            // hasOwnProperty来校验的该属性是否出现过;           return  obj.hasOwnProperty(typeof item+item)?false:obj[typeof item+item]=true;           if(obj.hasOwnProperty(typeof item+item)){               return false           }else{               obj[typeof item+item]=true;               return true;           }        })    }    console.log(unique(arr))

方法七:filter+indexOf

let arr = [12,1,12,3,1,88,66,9,66];    function unique(ary) {        return ary.filter(function (item,index,a) {            return ary.indexOf(item)===index;        })    }    console.log(unique(arr));

方法八:splice

let arr = [12,1,12,3,1,88,66,9,66]; function unique(ary) {        for(let i=0;i

方法九:递归

let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) {        let  len= ary.length;        ary = ary.sort(function (a,b) {            return a-b;        });        function loop(index) {            if(index>=1){                if(ary[index]===ary[index-1]){                    ary.splice(index,1);                }                loop(index-1)            }        }        loop(len-1);        return ary;    }    console.log(unique(arr));

方法十:Map :利用了Map数据结构存值的特点;

let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) {        let newAry =[];        let map = new Map();        for(let i=0;i

方法十一:reduce

let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) {        // reduce : 第一个是函数,第二个参数会传给第一次回调的prev;        return ary.reduce((prev,next)=>{            // 该函数返回值是下一次执行的prev;            return prev.includes(next)?prev:[...prev,next];        },[])    }    console.log(unique(arr));

方法十二:类似于方法一的set,用了剩余运算符...

let  arr = [12,1,12,3,1,88,66,9,66];    let a = [...new Set(arr)];    console.log(a);

感谢你能够认真阅读完这篇文章,希望小编分享的"JavaScript数组如何实现去重"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0