欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年06月20日 09:57:01   作者:longzhoufeng  
這篇文章主要介紹了JavaScrip數(shù)組去重操作,結(jié)合實例形式總結(jié)分析了javascript針對數(shù)組的遍歷、判斷、去重等相關(guān)操作技巧,需要的朋友可以參考下

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

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

<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 {
    //遍歷當(dāng)前數(shù)組
    for (let x of array) {
      temp.indexOf(x) === -1 ? temp.push(x) : '';
    }
  }
  return temp;
}
uniqueUseForOf(arr);
console.log(uniqueUseForOf(arr))
</script>

運行結(jié)果:

內(nèi)置的forEach方法

<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ù)組
    //遍歷當(dāng)前數(shù)組
    array.forEach(function (value, index) {
      temp.indexOf(value) == -1 ? temp.push(value) : '';
    })
    return temp;
  }
}
uniqueUseForEach(arr);
console.log(uniqueUseForEach(arr))
</script>

運行結(jié)果:

萬能的for方法

<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ù)組
  //遍歷當(dāng)前數(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>

運行結(jié)果:

第一種方法:

<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++) //從第二項開始遍歷
  {
    //如果當(dāng)前數(shù)組的第i項在當(dāng)前數(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>

第二種方法:

<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++) { //遍歷當(dāng)前數(shù)組
    if (!n[this[i]]) { //如果hash表中沒有當(dāng)前項
      n[this[i]] = true; //存入hash表
      r.push(this[i]); //把當(dāng)前數(shù)組的當(dāng)前項push到臨時數(shù)組里面
    }
  }
  return r;
};
console.log(arr.unique());
</script>

第三種方法:

<script>
var arr = [1,2,3,4,1,2,4,5,6];
console.log(arr);
Array.prototype.unique = function() {
  var n = []; //一個新的臨時數(shù)組
  for (var i = 0; i < this.length; i++) //遍歷當(dāng)前數(shù)組
  {
    //如果當(dāng)前數(shù)組的第i已經(jīng)保存進了臨時數(shù)組,那么跳過,
    //否則把當(dāng)前項push到臨時數(shù)組里面
    if (n.indexOf(this[i]) == -1) n.push(this[i]);
  }
  return n;
};
console.log(arr.unique());
</script>

上述三種方法運行結(jié)果為:

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

PS:這里再為大家提供幾款相關(guān)工具供大家參考使用:

在線去除重復(fù)項工具:
http://tools.jb51.net/code/quchong

在線文本去重復(fù)工具:
http://tools.jb51.net/aideddesign/txt_quchong

更多關(guān)于JavaScript相關(guān)內(nèi)容還可查看本站專題:《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript字符與字符串操作技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript錯誤與調(diào)試技巧總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

  • 細說JavaScript中的this指向與綁定規(guī)則

    細說JavaScript中的this指向與綁定規(guī)則

    本文主要詳細介紹了JavaScript中的this指向與綁定規(guī)則,默認綁定,隱式綁定,顯示綁定,new綁定這四個規(guī)則,文中有相關(guān)的代碼示例供大家參考,感興趣的同學(xué)可以閱讀下
    2023-05-05
  • JavaScript使用ul中l(wèi)i標(biāo)簽實現(xiàn)刪除效果

    JavaScript使用ul中l(wèi)i標(biāo)簽實現(xiàn)刪除效果

    這篇文章主要為大家詳細介紹了JavaScript使用ul中l(wèi)i標(biāo)簽實現(xiàn)刪除效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 選擇復(fù)選框按鈕置灰否則按鈕可用

    選擇復(fù)選框按鈕置灰否則按鈕可用

    這篇文章主要介紹了使用js實現(xiàn)選擇復(fù)選框按鈕置灰否則按鈕可用,需要的朋友可以參考下
    2014-05-05
  • js中匿名函數(shù)的N種寫法

    js中匿名函數(shù)的N種寫法

    在java中有private屬性,強大的功能js不能實現(xiàn)就矮人一截,匿名函數(shù),發(fā)揚廣大
    2010-09-09
  • vue雙向綁定簡要分析

    vue雙向綁定簡要分析

    這篇文章主要介紹了vue雙向綁定的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 跟我學(xué)Node.js(四)---Node.js的模塊載入方式與機制

    跟我學(xué)Node.js(四)---Node.js的模塊載入方式與機制

    Node.js中模塊可以通過文件路徑或名字獲取模塊的引用。模塊的引用會映射到一個js文件路徑,除非它是一個Node內(nèi)置模塊。Node的內(nèi)置模塊公開了一些常用的API給開發(fā)者,并且它們在Node進程開始的時候就預(yù)加載了。
    2014-06-06
  • javascript textContent與innerText的異同分析

    javascript textContent與innerText的異同分析

    因為發(fā)現(xiàn)網(wǎng)絡(luò)上很少有這方面的內(nèi)容,因此就把自己私有blog上的這篇文章搬出來到Boluor的公開blog,方便其它人查閱。
    2010-10-10
  • js轉(zhuǎn)化毫秒為時間格式代碼

    js轉(zhuǎn)化毫秒為時間格式代碼

    這篇文章主要介紹了使用js轉(zhuǎn)化毫秒為時間格式的具體實現(xiàn),需要的朋友可以參考下
    2014-04-04
  • ES6中Proxy與Reflect實現(xiàn)重載(overload)的方法

    ES6中Proxy與Reflect實現(xiàn)重載(overload)的方法

    這篇文章主要介紹了ES6中Proxy與Reflect實現(xiàn)重載(overload)的方法,分析了重載的原理及使用Proxy和Reflect來實現(xiàn)重載的操作步驟與相關(guān)技巧,需要的朋友可以參考下
    2017-03-03
  • JavaScript創(chuàng)建對象的七種方式(推薦)

    JavaScript創(chuàng)建對象的七種方式(推薦)

    JavaScript創(chuàng)建對象的方式有很多,通過Object構(gòu)造函數(shù)或?qū)ο笞置媪康姆绞揭部梢詣?chuàng)建單個對象,顯然這兩種方式會產(chǎn)生大量的重復(fù)代碼,并不適合量產(chǎn)。接下來介紹七種非常經(jīng)典的創(chuàng)建對象的方式,他們也各有優(yōu)缺點
    2017-06-06

最新評論