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

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

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

本文實(shí)例講述了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 = []; //一個(gè)臨時(shí)數(shù)組
  // 傳入值必須存在,且長度小于等于1的時(shí)候直接返回?cái)?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>

運(yùn)行結(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í)候直接返回?cái)?shù)組
  if (array && array.length <= 1) {
    return array;
  } else {
    var temp = []; //一個(gè)臨時(shí)數(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>

運(yùn)行結(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 = []; //一個(gè)臨時(shí)數(shù)組
  //遍歷當(dāng)前數(shù)組
  for (var i = 0, j = array.length; i < j; i++) {
    //很直白,新數(shù)組內(nèi)判斷是否有這個(gè)值,沒有的情況下,就推入該新數(shù)組
    temp.indexOf(array[i]) === -1 ? temp.push(array[i]) : '';
  }
  return temp;
}
uniqueUseFor(arr);
console.log(uniqueUseFor(arr))
</script>

運(yùn)行結(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++) //從第二項(xiàng)開始遍歷
  {
    //如果當(dāng)前數(shù)組的第i項(xiàng)在當(dāng)前數(shù)組中第一次出現(xiàn)的位置不是i,
    //那么表示第i項(xiàng)是重復(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í)數(shù)組
  for (var i = 0; i < this.length; i++) { //遍歷當(dāng)前數(shù)組
    if (!n[this[i]]) { //如果hash表中沒有當(dāng)前項(xiàng)
      n[this[i]] = true; //存入hash表
      r.push(this[i]); //把當(dāng)前數(shù)組的當(dāng)前項(xiàng)push到臨時(shí)數(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 = []; //一個(gè)新的臨時(shí)數(shù)組
  for (var i = 0; i < this.length; i++) //遍歷當(dāng)前數(shù)組
  {
    //如果當(dāng)前數(shù)組的第i已經(jīng)保存進(jìn)了臨時(shí)數(shù)組,那么跳過,
    //否則把當(dāng)前項(xiàng)push到臨時(shí)數(shù)組里面
    if (n.indexOf(this[i]) == -1) n.push(this[i]);
  }
  return n;
};
console.log(arr.unique());
</script>

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

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

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

在線去除重復(fù)項(xiàng)工具:
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é)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    vue雙向綁定簡要分析

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

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

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

    javascript textContent與innerText的異同分析

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

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

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

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

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

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

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

最新評(píng)論