首页 > 编程语言 > 详细

JS数组去重的3种方式

时间:2021-04-06 00:44:48      阅读:30      评论:0      收藏:0      [点我收藏+]

1. 通过ES6新增数据类型Set的特性

Array.prototype.unique = function() {
  return [...new Set(this)];
};

2. 通过for循环+indexOf过滤,并用新开辟的存储空间保存合适的数组元素

Array.prototype.unique = function() {
  const result = [];
  for (let i = 0, len = this.length; i < len; i++) {
    // 或 result.includes(this[i]) --> return true/false
    if (result.indexOf(this[i]) === -1) result.push(this[i]);
  }

  return result;
};

3. 借助hash算法的思想

Array.prototype.unique = function() {
  const record = {};
  const result = [];
  const len = this.length;
  let curr, i;

  for (i = 0; i < len; i++) {
    curr = this[i];
    if (record[curr]) continue;
    record[curr] = true;
    result.push(curr);
  }

  return result;
};

 

JS数组去重的3种方式

原文:https://www.cnblogs.com/fanqshun/p/14619675.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!