博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组去重的方法
阅读量:5206 次
发布时间:2019-06-14

本文共 1269 字,大约阅读时间需要 4 分钟。

 

 方法一:利用indexOf

let arr = [1, 2, '1', 1, 2, 3, 4, 4, 5, 3];function arrRepeat(arr) {    let newArr = []    for(let i = 0; i < arr.length; i++) {        if(newArr.indexOf(arr[i]) == -1) {            newArr.push(arr[i])        }    }    console.log(newArr)return newArr}arrRepeat(arr)

方法二:利用  hasOwnProperty

function arrRepeat(arr) {    let obj = {};    let newArray = [];    for(let i = 0; i < arr.length; i++) {      if(!obj.hasOwnProperty(arr[i])) {          obj[arr[i]] = i;        newArray.push(arr[i]);    }  }  return newArray}console.log(arrRepeat([1,2,1,3,5,'哈','哈',3,6,'q','a','q','a']))      //[1, 2, 3, 5, "哈", 6, "q", "a"]

方法三:利用ES6的set (一行代码数组去重)

Set数据结构,它类似于数组,其成员的值都是唯一的。

利用Array.from将Set结构转换成数组 

let array = Array.from(new Set([1, 1, 1, 2, 3, 2, 4]));

Set数据结构

let arr = [1,2,3,3];let resultarr = [...new Set(arr)]; console.log(resultarr); //[1,2,3]

方法四: 双循环

双层循环,外层循环元素,内层循环时比较值如果有相同的值则跳过,不相同则push进数组
function arrRepeat(arr){  let result = [],  i,  j,  len = arr.length; for(i = 0; i < len; i++){  for(j = i + 1; j < len; j++){   if(arr[i] === arr[j]){    j = ++i;   }  }  result.push(arr[i]); } return result;}console.log(arrRepeat([1,2,1,3,5,'哈','哈',3,6,'q','a','q','a']))  // [2, 1, 5, "哈", 3, 6, "q", "a"]

转载于:https://www.cnblogs.com/gaoht/p/9914525.html

你可能感兴趣的文章
Json,Gson,Ajax基础知识
查看>>
c#Task类。实现异步的一种方式
查看>>
【待阅】待整理文章列表
查看>>
使用 after 伪类清除浮动
查看>>
自定义模板语言之simple_tag和自定义过滤器
查看>>
oracle数据库
查看>>
(4)模型和数据
查看>>
javascript
查看>>
Terminate program hitting CTRl+C within GDB
查看>>
大龄码农那些事——关于我
查看>>
v-bind、v-on 的缩写
查看>>
在Web应用中接入微信支付的流程之极简清晰版
查看>>
BZOJ 1801: [Ahoi2009]chess 中国象棋( dp )
查看>>
Greg and Array
查看>>
[ext4] 磁盘布局 - extent tree
查看>>
mysql 自动备份脚本
查看>>
linux 设置时区
查看>>
异步路由、单播泛洪产生的安全侦听风险
查看>>
《STL源码剖析》STL的双层配置器
查看>>
VC分发包版本问题
查看>>