JS数组去重常用方法实例小结【4种方法】
程序员文章站
2022-06-04 11:33:54
本文实例讲述了js数组去重常用方法。分享给大家供大家参考,具体如下:
js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法
贴入代码前 ,先对浏览器array...
本文实例讲述了js数组去重常用方法。分享给大家供大家参考,具体如下:
js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法
贴入代码前 ,先对浏览器array对象进行支持indexof和foreach的polyfill
array.prototype.indexof = array.prototype.indexof || function(item) { for (var i = 0, j = this.length; i < j; i++) { if (this[i] === item) { return i; } } return -1; } array.prototype.foreach = array.prototype.foreach || function(callback, thisarg) { if (!callback || typeof callback !== 'function') return; for (var i = 0, j = this.length; i < j; i++) { callback.call(thisarg, this[i], i, this); } }
方法一:遍历数组,建立新数组,利用indexof判断是否存在于新数组中,不存在则push到新数组,最后返回新数组
function removeduplicateditem(ar) { var ret = []; for (var i = 0, j = ar.length; i < j; i++) { if (ret.indexof(ar[i]) === -1) { ret.push(ar[i]); } } return ret; }
方法二:遍历数组,利用object对象保存数组值,判断数组值是否已经保存在object中,未保存则push到新数组并用object[arrayitem]=1的方式记录保存
function removeduplicateditem2(ar) { var tmp = {}, ret = []; for (var i = 0, j = ar.length; i < j; i++) { if (!tmp[ar[i]]) { tmp[ar[i]] = 1; ret.push(ar[i]); } } return ret; }
方法三:数组下标判断法, 遍历数组,利用indexof判断元素的值是否与当前索引相等,如相等则加入
function removeduplicateditem3(ar) { var ret = []; ar.foreach(function(e, i, ar) { if (ar.indexof(e) === i) { ret.push(e); } }); return ret; }
方法四:数组先排序, 然后比较俩数组一头一尾进行去重
function removeduplicateditem4(ar) { var ret = [], end; ar.sort(); end = ar[0]; ret.push(ar[0]); for (var i = 1; i < ar.length; i++) { if (ar[i] != end) { ret.push(ar[i]); end = ar[i]; } } return ret; }
有其他好的方式 ,欢迎补充。
ps:这里再为大家提供几款相关工具供大家参考使用:
在线去除重复项工具:
在线文本去重复工具:
更多关于javascript相关内容感兴趣的读者可查看本站专题:《javascript数组操作技巧总结》、《javascript字符与字符串操作技巧总结》、《javascript遍历算法与技巧总结》、《javascript排序算法总结》、《javascript查找算法技巧总结》、《javascript数学运算用法总结》、《javascript数据结构与算法技巧总结》及《javascript错误与调试技巧总结》
希望本文所述对大家javascript程序设计有所帮助。