一个数组去重的简单实现

var arr = [1, 2, 3, 4, 5, 6, 7, 3, 2, 1];
console.log(unique(arr));
function unique(arr) {    
    var o = {};
    for (var i = 0; i < arr.length; i++) {
        o[arr[i]] = 1;
      }    
    return Object.keys(o);
    }

利用对象键值对的唯一性,先把数组转换为对象,再用Object.keys转换为数组。

若要兼容IE7,8,可以使用for in 循环

Object.keys兼容性

QQ截图20171214144303.png

ES6版本

function dedupe(array) {
  return Array.from(new Set(array));
}

dedupe([1, 1, 2, 3]) // [1, 2, 3]

利用数据结构set的唯一性。

标签: 数组

添加新评论