JavaScript 几种数组去重的方法

一.利用for嵌套for,然后splice去重

let arr=[5,5,5,12,12,-3,33,33,35,8];
for( let i=0; i<arr.length;i++){
for(let k=i+1;k<arr.length;k++){
if(arr[i]===arr[k]){
arr.splice(i,1);
i--;
}
}}
console.log(arr)

二.Set方法去重

let arr = [1,2,2,3,4,3,1,6,7,3,5,7];
let s1 = new Set(arr);
let arr2 = [...s1];
console.log(arr2);

三.利用indexOf去重

let arr=[1,2,4,4,5,6,7,7,8,9];
let s = [];  //遍历数组
for(var i = 0;i<arr.length;i++){
if(s.indexOf(arr[i]) == -1){ //判断在s数组中是否存在,不存在则push到s数组中
s.push(arr[i]);
}
}
console.log(s);

四.利用sort去重

let arr=[1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4];
function unique(arr) {
    if (!Array.isArray(arr)) {
        console.log(‘type error!‘)
        return;
    }
    arr = arr.sort()
    var arrry= [arr[0]];
    for (var i = 1; i < arr.length; i++) {
        if (arr[i] !== arr[i-1]) {
            arrry.push(arr[i]);
        }
    }
    return arrry;
}
        console.log(unique(arr));

  

五.双重for循环,利用push达到去重效果

let arr=[1,2,4,4,5,6,7,7,8,9];
  let newArr = []
  for (let i = 0; i < arr.length; i++) {
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[i] === arr[j]) {
        i++;
      }
    }
    newArr.push(arr[i])
  }
  console.log(newArr) 

原文地址:https://www.cnblogs.com/youwei716/p/11146091.html

时间: 2024-08-01 09:20:08

JavaScript 几种数组去重的方法的相关文章

Javascript中的数组去重-indexof方法

在Javascript中,有时我们会用到数组去重.我在这里给大家介绍一下本人认为最简单实用的一种方法-indexOf()去重. 1 var arr = [1,1,1,2,2,2,3,3,4,5,6,2,1]; 2 var arr2 = []; 3 for(var i = 0;i < arr.length;i++){ 4 if(arr2.indexOf(arr[i]) == -1){ 5 arr2.push(arr[i]) 6 } 7 } 8 console.log(arr2) //[1,2,3,

几种数组去重的方法

<script type="text/javascript">window.onload=function(){ /*数组去重方法一*//*var arr=[1,1,2,545,5,15,156,1,5,15]; var arr1=[]; for(var i=0;i<arr.length;i++){ if(arr1.indexOf(arr[i])==-1){ arr1.push(arr[i]); }; }; alert(arr1); */ /*数组去重方法二*//*

javascript 三种数组复制方法的性能对比

javascript 三种数组复制方法的性能对比,对于webkit, 使用concat; 其他浏览器, 使用slice. 一. 三种数组复制方法 1. by slice var arr = [1, 2, 3], copyArr; copyArr = arr.slice(); 2. by concat var arr = [1, 2, 3], copyArr; copyArr = arr.concat(); 3. by loop var arr = [1, 2, 3], copyArr = [];

js 数组去重的方法总结

想沉淀一下自己.代码改变世界~~~ 1.利用Array.from代码如下 1 var arr = [1,2,3,4,3,2,1] 2 function unique(arr){ 3 return Array.from(new Set(arr)) 4 } 5 console.log(unique(arr)) 2.利用es6(...)拓展运算符.demo 1 var arr = [1,2,3,4,3,2,1] 2 function unique(arr){ 3 return [...new Set(

javaScript常见的五种数组去重(转载)

JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN]; ▓▓▓▓▓▓ 第一种 思路:建立一个临时数组,用for循环去依次判断arr中的每个项在临时数组中是否有相同的值,如果没有则将这个值添加到临时数组,如果有相同的值则不添加,最后返回这个临时数组 代码: 1 Array.prototype.removeDuplicate = function(){ 2 var n = [

数组去重的方法总结

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>数组去重的 3种方法</title> </head> <body> <script type="text/javascript"> var demoAr = [3,4,5,5,7,2,1,4,3]; /

js数组去重的方法

1.如果不借助任何方法,初级写法应该是: function unique(arr){ var res=[]; for(var i=0,len=arr.length;i<len;i++){ var obj = arr[i]; for(var j=0,jlen = res.length;j<jlen;j++){ if(res[j]===obj) break; } if(jlen===j)res.push(obj); } return res; } var arr=[1,1,'2','1',3,4]

indexof实现数组去重的方法,有三个版本,一个Js版本,2个augular版本

先上Js的简化版本的数组去重,需要M层控制数据 大妈 1 var aa = [1,3,4,5,6,23,523,6,123,'1',12,'刘','刘','刘','翔',12,123,214,'1','3','刘翔','刘翔']; 2 3 function arr(arr){ 4 var result = []; 5 for (var i=0;i<arr.length;i++) { 6 if (result.indexOf(arr[i]) == -1) { 7 result.push(arr[i

JavaScript tips:数组去重

1.实现目标:数组去重 2.实现思路: (1)创建新数组. (2)遍历原数组,判断当前被遍历元素是否存在于新数组,如果存在于新数组,则判断当前被遍历元素是重复的:如果不存在于新数组,则判断当前被遍历元素不是重复的,则将其压入新数组. (3)遍历完毕原数组后,返回新数组. 3.具体实现:根据对当前元素是否重复的判断方法不同,有四种不同的具体实现. (1)利用hash表保存被遍历元素是否重复的状态. 1 function unique( arr ) { 2 var n = {}, //hash表,用