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 相关文章推荐
js 多种变量定义(对象直接量,数组直接量和函数直接量)
May 24 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
Dec 24 Javascript
详解JS函数重载
Dec 04 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
Feb 04 Javascript
Jquery插件easyUi实现表单验证示例
Dec 15 Javascript
轻松搞定js表单验证
Oct 13 Javascript
微信小程序 request接口的封装实例代码
Apr 26 Javascript
angular中ui calendar的一些使用心得(推荐)
Nov 03 Javascript
vuex实现的简单购物车功能示例
Feb 13 Javascript
ES6 Iterator接口和for...of循环用法分析
Jul 31 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
Apr 13 Javascript
Webpack的Loader和Plugin的区别
Nov 09 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
图解上海144收音机
2021/03/02 无线电
新版PHP极大的增强功能和性能
2006/10/09 PHP
PHP写MySQL数据 实现代码
2009/06/15 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
Flask之flask-session的具体使用
2018/07/26 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
几道Web/Ajax的面试题
2016/11/05 面试题
临床医学专业学生的自我评价分享
2013/11/21 职场文书
打架检讨书500字
2014/01/29 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js