set方法 - 多维数组去重
2023-01-03 本文已影响0人
小小Bug你别跑
image.png
var fruits = ["Banana", "Orange", "Apple", "Mango",[[ "Orange", "Apple", "Mango"],"Orange", "Apple", "Mango"]];
fruits.join()
//数组扁平化结果:"Banana,Orange,Apple,Mango,Orange,Apple,Mango,Orange,Apple,Mango"
fruits.join().split(',')
//字符串转换数组:["Banana", "Orange", "Apple", "Mango", "Orange", "Apple", "Mango", "Orange", "Apple", "Mango"]
new Set(fruits.join().split(','))
// 数组去重结果: {"Banana", "Orange", "Apple", "Mango"}
Array.from(new Set(fruits.join().split(',')))
// set对象转换为数组 : ["Banana", "Orange", "Apple", "Mango"]
这里涉及四个方法
1、join()
语法:array.join(separator) 方法用于把数组中的所有元素转换一个字符串。
separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
2、split()
语法:string.split(separator,limit)
separator 可选。字符串或正则表达式,从该参数指定的地方分割 string Object。
limit 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。
如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
3、new Set()
Set是es6新增的数据结构,**似于数组**,但它的一大特性就是**所有元素都是唯一的**,没有重复的值,我们一般称为集合。
Set本身是一个构造函数,用来生成 Set 数据结构
4、Array.from()
Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组,也是的新增方法。