set 去重
JavaScript中的Set数据结构是一种集合类型,它只存储唯一的值。当向Set中添加一个值时,它会先判断这个值是否已经存在于Set中,如果已经存在,则不会再次添加,否则会将这个值加入Set中。
Set是es6新增的数据结构,似于数组,但它的一大特性就是所有元素都是唯一的,没有重复的值,我们一般称为集合。
Array.from()
Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组
let arr = [1, 2, 3, 4, 5, 1, 2, 3, 4]
//new Set()生成出来的数据是Set数据结构,需要自行转换成对应结构
console.log(new Set(arr));//Set(5) {size: 5, 1, 2, 3, 4, 5}
//用展开运算符将类数组对象转换为真正数组
console.log([...new Set(arr)]);//(5) [1, 2, 3, 4, 5]
//Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组
console.log(Array.from(new Set(arr)));//(5) [1, 2, 3, 4, 5]
includes()
includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
//includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
let list = ['a', 'a', 'b', 'b', 'c', 'c', 1, 2, 3, 4, 1, 2, 3]
let newList = []
list.forEach((item) => {
// 空数组newList2 不包含item为false ,取反为true 执行数组添加操作
// 如果数组包含了 item为true 取反为false 不执行数组添加操作
if (!newList.includes(item)) {
newList.push(item)
}
})
console.log('newList', newList);//newList (7) ['a', 'b', 'c', 1, 2, 3, 4]
indexOf()
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回 -1
let list = ['a', 'a', 'b', 'b', 'c', 'c', 1, 2, 3, 4, 1, 2, 3]
let newList1 = [];
list.forEach((item) => {
// 空数组newList1第一次循环没有找到匹配的item 返回-1 执行数组添加操作
// 如果数组在第n次循环中找到了newList1数组中item 例如:item等于6 而在newList1数组中已经有9 所以indexOf就不等于-1 不执行数组添加操作
if (newList1.indexOf(item) === -1) {
newList1.push(item)
}
})
console.log('newList1', newList1);