美文网首页
关于数组去重的问题

关于数组去重的问题

作者: 隔壁老王z | 来源:发表于2018-11-02 14:52 被阅读0次

先来看两种解法:

//es6解法
const arr = [1, 1, 2, 3, 4, 4, 5, 5]
console.info([...new Set(arr)])
//es5解法
const arr = [1, 1, 2, 3, 4, 4, 5, 5]
const res = []
for(let i = 0; i < arr.length; res.indexOf(arr[i++]) === -1 && res.push(arr[i - 1]));
console.info(res)

扩展运算符 ... 是把数组或类数组对象展开成一系列用逗号隔开的值。ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值,set内部可用for...of...遍历。Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。例如:var set = new Set([1, 2, 3, 4, 4]); [...set] // [1, 2, 3, 4]

//第二种写法实际上是:
const arr = [1, 1, 2, 3, 4, 4, 5, 5]
const res = []
for(let i = 0; i < arr.length; i++){
    res.indexOf(arr[i]) === -1 && res.push(arr[i])
};
console.info(res)

三个注意点:res.indexOf(arr[i++]) === -1 实际上是先判断是否等于 -1 然后 i 再自增 1 的。&&运算符从左往右依次判断,当当前值为true则继续,为false则返回此值(是返回未转换为布尔值时的原值)。res.push(arr[i - 1])里的 i 实际上实际上已经是自增 1 以后的了。

相关文章

  • 关于数组去重的问题

    先来看两种解法: 扩展运算符 ... 是把数组或类数组对象展开成一系列用逗号隔开的值。ES6提供了新的数据结构Se...

  • 关于数组去重

    (先注明一下我在饥人谷学习了大概两个月的时间,本身有html和css基础,js听身边的人耳濡目染了一些但是对我而言...

  • JavaScript 数组去重的多种方法原理详解

    JavaScript 数组去重的多种方法原理详解 说明 数组去重,这是一个面试经常会遇见的问题,网上讲数组去重的文...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • 【JavaScript】数组去重

    话说面试常会碰到面试官会问JavaScript实现数组去重的问题,最近刚好在学习有关于JavaScript数组相关...

  • JavaScript数组去重问题

    总结一下利用JS解决去重问题的方法。总体思路: 构建一个新的空数组。 遍历数组,将不重复的元素Push到新数组中。...

  • Java数组去重问题

    方法一: 使用两个标志位进行标定去重。此方法无需使用任何容器,也不需要另外开辟数组空间,推荐使用,但丢失了数组元素...

  • JS简单的算法题之数组去重,帮你解决遇到的困难

    我们在平时开发的过程中,经常会遇到数组去重的问题,今天我们就来聊聊数组如何实现去重 比如上面这样的数组,我们来去重...

  • 关于数组去重的小结

    一、js关于数组去重的方法有很多。关于es5的我就列举几个。 1.通过indexOf方法。判断此元素在该数组中...

  • 实现数组去重有哪些方式

    简单的数组去重 数组对象去重

网友评论

      本文标题:关于数组去重的问题

      本文链接:https://www.haomeiwen.com/subject/hntcxqtx.html