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

字符串去重跟数组去重大同小异,将字符串转成数组即可使用数组去重方法。
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

hash表方式:
function unique(arr){  
    var hash = [], result = [],item;  
    hash[arr[0]]=1;  
    for (var i=1;i

运行结果: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类似于数组,但成员的值都是唯一的,可用于数组去重。

你可能感兴趣的:(JavaScript,JS趣味编程)