Js学习之-----数组去重
1、[...new Set(arr)]
字符串去重:
let str="aassdhjgffbjhas" console.log("字符串去重:",[...new Set(str)])//["a", "s", "d", "h", "j", "g", "f", "b"] console.log("字符串去重:",[...new Set(str)].join(''))//asdhjgfb
数组去重:
let arr = [1, 2, 2, 5, 5, 1, 3, 3, 1, 4]; console.log("数组去重:", [...new Set(arr)])//[1, 2, 5, 3, 4]
tips1:Array.from()----------- 将一个类数组对象或者可遍历对象转换成一个真正的数组
//对象转数组 let obj = { 0: 1, 1: 2, 2: 3, 3: 4, 'length': 4 //length属性必须有,不然转出来会是一个空数组 }; console.log("对象转数组实验:", Array.from(obj))//[1, 2, 3, 4]
tips2:展开运算符 (...) ----------- 将一个数组转为用逗号分隔的参数序列
//数组转对象 let arr = [1, 2, 3, 4] let obj={...arr};//{0: 1, 1: 2, 2: 3, 3: 4}
2、两层for循环去重
let arr = [1, 2, 2, 5, 5, 1, 3, 3, 1, 4]; for (let i = 0; i < arr.length; i++) {//从第一个元素开始循环 for (let j = i + 1; j < arr.length; j++) {//从下一个元素开始循环 if (arr[i] === arr[j]) { arr.splice(j, 1)//如果两个元素相同,剔除后者 j--//返回保留的元素位置 } } }
3、一层for循环去重
let arr = [1, 2, 2, 5, 5, 1, 3, 3, 1, 4]; let arr1=[]//建一个新的空数组 for (let i = 0; i < arr.length; i++) { if(arr1.indexOf(arr[i])===-1){//如果新数组中不包含该元素,则把元素加入到新数组中 arr1.push(arr[i]) } }