web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 好玩
  5. seo教程
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站

javascript(es6)数组去重方法介绍(根据不同浏览器选择不同方法)

593 ℃
     

今天web建站小编给大家介绍几种数组去重的方法,其中有es6语法写的,也有低版本浏览器兼容需要的写。

1、es6写法:利用Set去重(写法最简单,但不兼容低版本)

const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5];
const setData = Array.from(new Set(arr));
console.log(setData);
//[1, 'ok', 'mi', 3, 5]

2、es6写法:利用includes去重

const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5];
const removeRepeatData = (arr) => {
  let repeatArr = [];
  for (let i = 0,len = arr.length ; i < len; i++)
    if (!repeatArr.includes(arr[i])) repeatArr.push(arr[i])
  return repeatArr;
}
console.log(removeRepeatData(arr))
// [1, 'ok', 'mi', 3, 5]

3、es6写法:利用filter去重,(需要和indexOf一起用)

const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5];
const removeRepeatData = (arr) => arr.filter((item,index) => arr.indexOf(item,0) === index);
console.log(removeRepeatData(arr))
// [1, 'ok', 'mi', 3, 5]

4、双重for循环去重(兼容低版本)

const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5];
const removeRepeatData = (arr) => {
  for (let i=0,len = arr.length; i < len; i++) {
    for (let j = i + 1; j < len; j++) {
      if (arr[i] === arr[j]) {
        arr.splice(j, 1);
        j--;
        len--;
      }
    }
  }
  return arr;
};
console.log(removeRepeatData(arr))
// [1, 'ok', 'mi', 3, 5]

5、indexOf去重(兼容低版本最合适,比双重for循环简单)

const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5];
const removeRepeatData = (arr) => {
  let repeatArr = [];
  for (let i = 0,len = arr.length ; i < len; i++) 
   if (repeatArr.indexOf(arr[i]) === -1)  repeatArr.push(arr[i])
  return repeatArr;
}
console.log(removeRepeatData(arr))
//[1, 'ok', 'mi', 3, 5]

css3+jquery手风琴式幻灯插件(支持IE平台请使用IE8以上浏览器)

JavaScript有哪些方法可以快速遍历出想要的数据

javascript如何解决浏览器不支持indexOf

js如何计算字符串中指定字段串出现的频率

如何利用includes方法对数组去重

标签: filter, for循环, includes, indexOf, set, 数组去重, 浏览器兼容

上面是“javascript(es6)数组去重方法介绍(根据不同浏览器选择不同方法)”的全面内容,想了解更多关于 js 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_2433.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 网站首页 > js
本文共计1233个字,预计阅读时长9分钟
生活小工具,收录了80多款小工具
上一篇: 推荐一款免费开源的屏幕录制软件——OBS Studio
下一篇: 推荐一个高质量的图片素材网站——Unsplash
x 打工人ai神器