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])
  }
}

 

 

  

 

posted @ 2021-07-26 16:44  程序员冒冒  阅读(47)  评论(0编辑  收藏  举报