详解JavaScript数组和字符串中去除重复值的方法

原理在代码中表现得非常清晰,我们直接来看代码例子:

console.log(ages); //=> [17,35]

= 10; } var filtered = [12,5,8,130,44].filter(isBigEnough); // filtered is [12,44]
rush:js;">
function onlyUnique(value,index,self) {  
  return self.indexOf(value) === index; 
} 

// usage example:
var a = ['a',1,'a',2,'1'];
var unique = a.filter( onlyUnique ); // returns ['a','1']

比较好使的Function(不兼容IE7)

rush:js;"> function unique(array){ return array.filter(function(el,arr) { return index == arr.indexOf(el); }); }

比较好使的Function(兼容IE7)

rush:js;"> //去除数组中重复值 function getnorepeat(s) { return s.sort().join(",").replace(/(,|^)([^,]+)(,\2)+(,|$)/g,"$1$2$4").replace(/,+/g,",").replace(/,$/,"").split(","); }

var arr = ["北京","上海","天津","武汉","北京","武汉"];
arr = getnorepeat(arr);

alert(arr.length);// 4
alert(arr.toString()); // "北京","武汉"

利用map原理

rush:js;"> var arr = ["北京","武汉"];

var json = {};
for(var i = 0; i < arr.length; i++){
json[arr[i]] = arr[i];
}

arr = new Array();
for(var key in json){
arr.push(key);
}
alert(arr.toString());
// "北京","武汉"

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...