javascript数组去重
2013-10-18 01:36 youxin 阅读(406) 评论(0) 编辑 收藏 举报字典去重:
function delrep2() { var n = {} , r = [] this.forEach(function(v){ if (!n[v]) { n[v] = true r.push(v) } }) return r },
但是令人遗憾的是,这个方法是有bug的:你把所有的元素都转化成字典的键值key,也就是字符串,那必然会出现1和'1'的问题
一、jQuery.unique
使用jQuery unique 函数去重,适用于已引入jQuery库的童鞋
语法:
jQuery.unique( array )
示例:
var arr=["start", "1", "2", "1", "dsfsd", "4", "3", 3, "4", 4, "end", 5] console.log(jQuery.unique( arr )) //["start", "end", "dsfsd", 5, 4, "4", 3, "3", "2", "1"]
二、自定义函数
以下方法提取自jQuery,实现原理:对数组排序,判断相邻的值是否相等
源代码:
Array.prototype.unique = function(){
var results=this.sort()
for ( var i = 1; i < results.length; i++ ) {
if ( results[i] === results[ i - 1 ] ) {
results.splice( i--, 1 );
}
}
return results;
}
示例:
var arr=["start", "1", "2", "1", "dsfsd", "4", "3", 3, "4", 4, "end", 5] console.log(arr.unique()) //["1", "2", "3", 3, "4", 4, 5, "dsfsd", "end", "start"]
更多:
http://www.ituring.com.cn/article/49791
http://www.111cn.net/wy/js-ajax/45241.htm
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步