首页 > 编程语言 > 详细

JavaScript -- 去重的几种简单好记的方法

时间:2020-08-27 11:15:00      阅读:84      评论:0      收藏:0      [点我收藏+]

去重(性能由低到高)

一、New Set()

let arr = [1,1,‘true‘,‘true‘,true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,‘NaN‘, 0, 0, ‘a‘, ‘a‘,{},{}];
function unique(arr) {
return Array.from(new Set(arr));
}
console.log(unique(arr));// [1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {…}, {…}]

 

二、Array.sort()

function unique(arr) {
arr = arr.sort();
   let array = [arr[0]];
   for (let i = 1; i < arr.length; i++) {
if (arr[i] !== arr[i-1]) {
           array.push(arr[i]);
      }
  }
   return array;
}
console.log(unique(arr));//[0, 1, 15, NaN, NaN, "NaN", {…}, {…}, "a", false, null, "true", true, undefined]

 

三、Array.indexOf()

function unique(arr) {
   let array = [];
   for (let i = 0; i < arr.length; i++) {
       if (array.indexOf(arr[i]) === -1) {
           array.push(arr[i]);
      }
  }
   return array;
}
console.log(unique(arr));//[1, "true", true, 15, false, undefined, null, NaN, NaN, "NaN", 0, "a", {…}, {…}]

 

四、双重for循环

function unique(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = i+1; j < arr.length; j++) {
           if (arr[i] === arr[j]) {
arr.splice(j, 1);
               j--;
          }
      }
  }
   return arr;
}
console.log(unique(arr)); //[1, "true", true, 15, false, undefined, null, NaN, NaN, "NaN", 0, "a", {…}, {…}]

 

JavaScript -- 去重的几种简单好记的方法

原文:https://www.cnblogs.com/yanghana/p/13569979.html

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