电竞比分网-中国电竞赛事及体育赛事平台

分享

JavaScrip數(shù)組去重操作實例小結(jié)

 好程序員IT 2019-07-22

JavaScrip數(shù)組去重操作實例小結(jié)這篇文章主要介紹了JavaScrip數(shù)組去重操作,結(jié)合實例形式總結(jié)分析了javascript針對數(shù)組的遍歷、判斷、去重等相關(guān)操作技巧,需要的朋友可以參考下。

本文實例講述了JavaScrip數(shù)組去重操作。分享給大家供大家參考,具體如下:

內(nèi)置的for-of方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<script>

var arr=[2,1,1,3,'','','e','e',true,'true',true,false,false,'false',undefined,'undefined',undefined,null,'null',null];

function uniqueUseForOf(array) {

  const temp = []; //一個臨時數(shù)組

  // 傳入值必須存在,且長度小于等于1的時候直接返回數(shù)組

  if (array && array.length <= 1) {

    return array;

  } else {

    //遍歷當前數(shù)組

    for (let x of array) {

      temp.indexOf(x) === -1 ? temp.push(x) : '';

    }

  }

  return temp;

}

uniqueUseForOf(arr);

console.log(uniqueUseForOf(arr))

</script>


內(nèi)置的forEach方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<script>

var arr=[3,1,1,3,'','','e','e',true,'true',true,false,false,'false',undefined,'undefined',undefined,null,'null',null];

function uniqueUseForEach(array) {

  // 傳入值必須存在,且長度小于等于1的時候直接返回數(shù)組

  if (array && array.length <= 1) {

    return array;

  } else {

    var temp = []; //一個臨時數(shù)組

    //遍歷當前數(shù)組

    array.forEach(function (value, index) {

      temp.indexOf(value) == -1 ? temp.push(value) : '';

    })

    return temp;

  }

}

uniqueUseForEach(arr);

console.log(uniqueUseForEach(arr))

</script>


萬能的for方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<script>

var arr=[1,1,'','','e','e',true,'true',true,false,false,'false',undefined,'undefined',undefined,null,'null',null];

function uniqueUseFor(array) {

  var temp = []; //一個臨時數(shù)組

  //遍歷當前數(shù)組

  for (var i = 0, j = array.length; i < j; i++) {

    //很直白,新數(shù)組內(nèi)判斷是否有這個值,沒有的情況下,就推入該新數(shù)組

    temp.indexOf(array[i]) === -1 ? temp.push(array[i]) : '';

  }

  return temp;

}

uniqueUseFor(arr);

console.log(uniqueUseFor(arr))

</script>


第一種方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<script>

var arr = [1, 2, 3, 4, 1, 2, 4, 5, 6];

console.log(arr);

Array.prototype.unique = function() {

  var n = [this[0]]; //結(jié)果數(shù)組

  for(var i = 1; i < this.length; i++) //從第二項開始遍歷

  {

    //如果當前數(shù)組的第i項在當前數(shù)組中第一次出現(xiàn)的位置不是i,

    //那么表示第i項是重復(fù)的,忽略掉。否則存入結(jié)果數(shù)組

    if(this.indexOf(this[i]) == i) n.push(this[i]);

  }

  return n;

};

console.log(arr.unique());

</script>

第二種方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<script>

var arr = [1,2,3,4,1,2,4,5,6];

console.log(arr);

Array.prototype.unique = function()

{

  var n = {},

    r = []; //n為hash表,r為臨時數(shù)組

  for (var i = 0; i < this.length; i++) { //遍歷當前數(shù)組

    if (!n[this[i]]) { //如果hash表中沒有當前項

      n[this[i]] = true; //存入hash表

      r.push(this[i]); //把當前數(shù)組的當前項push到臨時數(shù)組里面

    }

  }

  return r;

};

console.log(arr.unique());

</script>

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多