您的位置:首页 > 其它

多种方法实现数组去重以及字符串去重(ES5常用去重方式、ES6快捷去重、hash表方式去重)

2018-02-26 09:38 681 查看
字符串去重跟数组去重大同小异,将字符串转成数组即可使用数组去重方法。ES5常用方式:
function unique(array) {
var result = [];
for(var i = 0; i < array.length; i++) {
if (result.indexOf(array[i]) == -1) {
result.push(array[i]);
}
}
console.log(result.toString());
}
unique([1,2,3,4,3,4,5,6,6,7]);
运行结果:1,2,3,4,5,6,7
[b]hash表方式:[/b]
function unique(arr){
var hash = [], result = [],item;
hash[arr[0]]=1;
for (var i=1;i<arr.length ;i++ )
{
if(hash[arr[i]]===undefined){
hash[arr[i]]=1
}
}
for (item in hash) {
result.push(item);
}
console.log(result.toString());

}
unique([20,50,20,40,50,10,20]);
运行结果:10,20,40,50
ES6方式:
function unique(array) {
const s = new Set();
array.forEach(x => s.add(x));
for (let i of s) {
console.log(i)
}
}
unique([1,2,2,3,6,6,7,8,8])
运行结果:1,2,3,6,7,8
ES6更简洁的写法:function unique(array) {
const result = [...new Set(array)]
console.log(result)
}
unique([1,2,2,3,4,5,5,5])运行结果:1,2,3,4,5

原理:es6新的数据结构Set类似于数组,但成员的值都是唯一的,可用于数组去重。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐