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 相关文章推荐
Javascript 原型和继承(Prototypes and Inheritance)
Apr 01 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
Sep 20 Javascript
js弹出窗口之弹出层的小例子
Jun 17 Javascript
JS解决ie6下png透明的方法实例
Aug 02 Javascript
获取鼠标在div中的相对位置的实现代码
Dec 30 Javascript
angularjs学习笔记之简单介绍
Sep 26 Javascript
实例讲解javascript注册事件处理函数
Jan 09 Javascript
javascript之Boolean类型对象
Jun 07 Javascript
浅谈javascript中关于日期和时间的基础知识
Jul 13 Javascript
vue.js入门(3)——详解组件通信
Dec 02 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
Aug 28 Javascript
ES6使用export和import实现模块化的方法
Sep 10 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
多重?l件?合查?(二)
2006/10/09 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
JavaScript 中的replace方法说明
2007/04/13 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
Vue 3.0双向绑定原理的实现方法
2019/10/23 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
Python使用sort和class实现的多级排序功能示例
2018/08/15 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
python循环输出三角形图案的例子
2019/11/22 Python
什么是python的必选参数
2020/06/21 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
供货协议书
2014/04/22 职场文书
优秀教师单行材料
2014/12/16 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
交通事故责任认定书
2015/08/06 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS