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实现文本框缩放以及上下移动功能
Nov 24 Javascript
自己动手手写jQuery插件总结
Jan 20 Javascript
jQuery使用元素属性attr赋值详解
Feb 27 Javascript
详解Javascript模板引擎mustache.js
Jan 20 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
Aug 02 Javascript
基于BootstrapValidator的Form表单验证(24)
Dec 12 Javascript
JavaScript异步加载问题总结
Feb 17 Javascript
Node.js利用console输出日志文件的方法示例
Apr 27 Javascript
Vue2实时监听表单变化的示例讲解
Aug 30 Javascript
vue-cli构建vue项目的步骤详解
Jan 27 Javascript
vue.js仿hover效果的实现方法示例
Jan 28 Javascript
vue实现点击隐藏与显示实例分享
Feb 13 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
一个好用的分页函数
2006/11/16 PHP
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
PHP中函数rand和mt_rand的区别比较
2012/12/26 PHP
探讨PHP使用eAccelerator的API开发详解
2013/06/09 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
jquery each()源代码
2011/02/14 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
layer插件select选中默认值的方法
2018/08/14 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
Python生成随机MAC地址
2015/03/10 Python
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
Python 操作MySQL详解及实例
2017/04/30 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
小学教育见习总结
2015/06/23 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏