js数组去重的hash方法
2016-12-22 10:38
811 查看
对于 JavaScript 数组去除重复项,现在有多种方法,其中一种是hash,如下:
if (!Array.prototype.unique) { Array.prototype.unique = function () { var hash = {}, result = [], item; for (var i = 0; i < this.length; i++) { item = this[i]; if ( !hash[item] ) { hash[item] = true; result.push(item); } } return result; }; }
但是该方法并不严谨,无法区分数字 1 和 字符串 '1'
var arr = [0, 1, '1', true, 5, true, false, undefined, undefined, null, null]; arr.unique();
修改一下,加上数据类型判断:
if (!Array.prototype.unique) { Array.prototype.unique = function () { var hash = {}, result = [], type = '', item; for (var i = 0; i < this.length; i++) { item = this[i]; type = Object.prototype.toString.call(item); if ( !hash[item + type] ) { hash[item + type] = true; result.push(item); } } return result; }; }
至少现在对5种原始数据类型的值可以准确去重了,对某些引用类型的值──数组,函数,也可以,但是对象类型──{"name": 1}, {"name": 2}就没法区分了。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!
您可能感兴趣的文章:
相关文章推荐
- JS 处理JSON数据及javascript处理对象、JSON对象、hash对象、数组对象的方法
- js数组去重的hash方法
- JS数组方法汇总
- JS数组方法汇总
- JS数组方法汇总 array数组元素的添加和删除
- 【分享】JS打乱数组最高效的方法
- JS数组方法汇总 array数组元素的添加和删除 Easy-to-read(备忘)
- js数组 sort方法的分析
- js 删除数组几种方法
- 自己写的JS数组插入方法
- 数组自带的push方法 分类: 网页编程【html、js】 2009-11-02 20:51 235人阅读 评论(0) 收藏
- 数组遍历的两种方法和hash的实现
- JS数组方法汇总
- JS数组方法汇总
- JS数组方法汇总 array
- JS 在数组插入字符的实现代码(可参考JavaScript splice() 方法)
- 为JS数组/Json/Xml添加折半查询方法
- JS数组方法汇总 array
- JS数组方法汇总 array
- js 数组克隆方法 小结