JS实现的字符串数组去重功能小结


Posted in Javascript onJune 17, 2019

本文实例讲述了JS实现的字符串数组去重功能。分享给大家供大家参考,具体如下:

这里只考虑最简单字符串的数组去重,暂不考虑,对象,函数,NaN等情况,这种用正则实现起来就吃力不讨好了。

非正则实现:ES6实现

<script>
let str_arr=["b","c",1,"a", 3,"v", "2","e", "6","g", "9", "arr",9, "hello",",6", "9", "1", 2, 6, "b", "c"]
function unique(arr){
 return [...new Set(arr)]
}
console.log(unique(str_arr)) 
</script>

运行结果:

JS实现的字符串数组去重功能小结

ES5实现

<script>
var str_arr = ["b","c",1,"a", 3,"v", "2","e", "6","g", "9", "arr",9, "hello",",6", "9", "1", 2, 6, "b", "c"]
  function unique(arr) {
    return arr.filter(function(ele, index, array) {
      return array.indexOf(ele) === index
    })
  }
  console.log(unique(str_arr))
</script>

运行结果同上

ES3实现

<script>
var str_arr = ["b","c",1,"a", 3,"v", "2","e", "6","g", "9", "arr",9, "hello",",6", "9", "1", 2, 6, "b", "c"]
function unique(arr) {
  var obj = {},
    array = []
  for (var i = 0, len = arr.length; i < len; i++) {
    var key = arr[i] + typeof arr[i]
    if (!obj[key]) {
      obj[key] = true
      array.push(arr[i])
    }
  }
  return array
}
console.log(unique(str_arr))
</script>

运行结果同上

用正则实现

<script>
 var str_arr = ["b","c",1,"a", 3,"v", "2","e", "6","g", "9", "arr",9, "hello",",6", "9", "1", 2, 6, "b", "c"]
 function unique(arr) {
   return arr.sort().join(",,").
   replace(/(,|^)([^,]+)(,,\2)+(,|$)/g, "$1$2$4").
   replace(/,,+/g, ",").
   replace(/,$/, "").
   split(",")
 }
 console.log(unique(str_arr))
</script>

运行结果:

JS实现的字符串数组去重功能小结

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

Javascript 相关文章推荐
jquery 设置元素相对于另一个元素的top值(实例代码)
Nov 06 Javascript
通过伪协议解决父页面与iframe页面通信的问题
Apr 05 Javascript
jQuery插件Validate实现自定义表单验证
Jan 18 Javascript
jquery实现具有收缩功能的垂直导航菜单
Feb 16 Javascript
基于javascript实现页面加载loading效果
Sep 15 Javascript
jQuery获取当前点击的对象元素(实现代码)
May 19 Javascript
Windows安装Node.js报错:2503、2502的解决方法
Oct 25 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
May 20 Javascript
JS字符串与二进制的相互转化实例代码详解
Jun 28 Javascript
小程序实现分类页
Jul 12 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
Oct 28 jQuery
用Angular实现一个扫雷的游戏示例
May 15 Javascript
JavaScript静态作用域和动态作用域实例详解
Jun 17 #Javascript
深入解析koa之中间件流程控制
Jun 17 #Javascript
深入解读Node.js中的koa源码
Jun 17 #Javascript
学习RxJS之JavaScript框架Cycle.js
Jun 17 #Javascript
javascript系统时间设置操作示例
Jun 17 #Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
Jun 17 #Javascript
Vue程序调试的方法
Jun 17 #Javascript
You might like
解析获取优酷视频真实下载地址的PHP源代码
2013/06/26 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
用js实现计算加载页面所用的时间
2010/04/02 Javascript
javascript下string.format函数补充
2010/08/24 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
2017/12/20 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
python根据距离和时长计算配速示例
2014/02/16 Python
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
python中assert用法实例分析
2015/04/30 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
python中使用while循环的实例
2019/08/05 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
一个入门级python爬虫教程详解
2021/01/27 Python
中软国际Java程序员笔试题
2014/07/19 面试题
写自荐信有哪些不宜?
2013/10/17 职场文书
高级销售员求职信
2013/10/25 职场文书
老师推荐信
2013/10/28 职场文书
出纳员岗位责任制
2014/02/11 职场文书
爱心捐助倡议书
2014/05/19 职场文书
廉政承诺书范文
2015/04/28 职场文书
2015小学音乐教师个人工作总结
2015/07/21 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书