数组去重(8种方法)

第一种:Set()方法

Set本身是一个构造函数,用来生成Set数据结构。

它类似于数组,但里面的成员是唯一的,不重复的。

第二种:indexOf()

indexOf()的意思:查找一个字符串中,第一次出现指定字符串的位置。

indexOf方法返回一个整数值,指出 string对象内子字符串的开始位置。如果没有找到该字符串则返回-1。


第三种:includes 方法

includes  方法会找到某一数组是否包含某元素  返回一个布尔

includes  也可以用来查询字符串中是否包含某一个元素   返回的也是一个布尔值

 第四种:slice方法去重

        Array.slice() 截取数组,将截取到的数组返回,不改变原数组。

        slice(num1,num2)方法可以传入两个参数(二者均为数组的下标)

        num1:开始截取数组的位置(包含该位置的元素)

        num2:停止截取数组的位置(不包含该位置的元素),不传,则默认值是数组的长度length。


(1)对象去重

(2)数组去重

第五种:双重for循环

第六种:filter与indexOf结合

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。


第七种:map方法

map是js中的一种数据结构,允许存储键、值对,键和值可以是任意类型的数据,如果其中存在的键,值会被替换

map()方法:返回一个新数组,不会修改原数组,且不会对空数组进行检测。

Map中的一些常用方法

1、has():检测map对象中键是否存在,存在返回true,不存在返回false。

2、set():为map对象添加键值对,方法里里面跟两个参数(键,值),如果只传入一个参数,则值为undefine。

3、get():通过键来获取对应的值。

第八种:reduce方法

 reduce()方法不仅仅用于数组求和,还可以满足增删查改、去重、平铺数组等需求,当reduce()方法解决每层数组的迭代拼接时,就会起到去重的作用。

        prev:表示上一次调用回调时的返回值,或者初始值 init;

        cur:表示当前正在处理的数组元素;

        index:表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;

        init:表示初始值。

        arr:表示原数组;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容