亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS基于對(duì)象的特性實(shí)現(xiàn)去除數(shù)組中重復(fù)項(xiàng)功能詳解

 更新時(shí)間:2017年11月17日 11:14:52   作者:Small_Teemo  
這篇文章主要介紹了JS基于對(duì)象的特性實(shí)現(xiàn)去除數(shù)組中重復(fù)項(xiàng)功能,結(jié)合實(shí)例形式較為詳細(xì)的分析了js基于key值唯一性實(shí)現(xiàn)數(shù)組去重的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了JS基于對(duì)象的特性實(shí)現(xiàn)去除數(shù)組中重復(fù)項(xiàng)功能。分享給大家供大家參考,具體如下:

數(shù)組去重的方法有很多,不同的方法的效率也不相同。如前面文章JS實(shí)現(xiàn)的數(shù)組去除重復(fù)數(shù)據(jù)算法小結(jié)中就總結(jié)分析了4種實(shí)現(xiàn)方法。這里介紹一種高效數(shù)組去重的方法:根據(jù)JS對(duì)象的特性去除數(shù)組中重復(fù)項(xiàng)的方法。

一、JS對(duì)象的特性(本文中所使用的特性):key始終唯一

引例:說(shuō)明對(duì)象key值的唯一性,即當(dāng)重新給js已有屬性賦值的時(shí)候,實(shí)際上是覆蓋了key,而不是新建了key

var t={name:'張三',age:20};//定義個(gè)js對(duì)象
console.log(t.name);//控制臺(tái)輸出:張三
//注意:此時(shí)對(duì)象t有兩個(gè)屬性:name、age
t.name='李四';
console.log(t.name);//控制臺(tái)輸出:李四
//注意:此時(shí)對(duì)象t依然有兩個(gè)屬性:name、age

二、數(shù)組去重步驟解析

分為兩個(gè)步驟:

1. 把要去重的數(shù)組轉(zhuǎn)換成一個(gè)js的對(duì)象并返回。轉(zhuǎn)換規(guī)則:把數(shù)組中的值變成js對(duì)象當(dāng)中的key,然后value給任意值;

2. 把步驟1中的對(duì)象再還原成數(shù)組,對(duì)象的key作為數(shù)組中的元素。

三、數(shù)組去重實(shí)現(xiàn)

var arr=[1,2,3,4,5,23,4,2,4,3];
//1.把數(shù)組裝換成對(duì)象,數(shù)組的元素作為對(duì)象的key,然后返回對(duì)象
function toObject(ac_array){
    var obj={};//私有的對(duì)象
    for (var i=0;i<ac_array.length;i++) {
      obj[ac_array[i]] = true;
    }
    console.log(obj);//Object {1: true, 2: true, 3: true, 4: true, 5: true, 23: true}
    return obj;
}
//2.把對(duì)象的key獲取出來(lái)作為數(shù)組的元素,然后返回?cái)?shù)組
function keys(ac_obj){
    var arr = [];
    for(var item in ac_obj){
      if(ac_obj.hasOwnProperty(item)){
        arr.push(item);
      }
    }
    console.log(arr);//["1", "2", "3", "4", "5", "23"]
    return arr;
}
//綜合
function uniq(ac_array){
    return keys(toObject(ac_array));
}
//測(cè)試
var uniq_array=uniq(arr);
console.log(uniq_array);//["1", "2", "3", "4", "5", "23"]

代碼測(cè)試結(jié)果:

這種利用js對(duì)象key唯一性的特性進(jìn)行數(shù)組去重的方法,在雅虎YUI框架的底層代碼中也有用到哦,有興趣的小火把可以去瞄瞄哦。

PS:這里再為大家提供幾款去重復(fù)工具供大家參考使用:

在線去除重復(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數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

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

相關(guān)文章

  • js實(shí)現(xiàn)鼠標(biāo)滾輪控制圖片縮放效果的方法

    js實(shí)現(xiàn)鼠標(biāo)滾輪控制圖片縮放效果的方法

    這篇文章主要介紹了js實(shí)現(xiàn)鼠標(biāo)滾輪控制圖片縮放效果的方法,涉及onmousewheel事件及javascript操作圖片的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • JS實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法分析

    JS實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法分析

    這篇文章主要介紹了JS實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法,結(jié)合實(shí)例形式分析了javascript字符串使用reverse方法、字符串遍歷方法以及針對(duì)輸入字符串的遍歷、逆序輸出等方法實(shí)現(xiàn)字符串反轉(zhuǎn)相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • 利用 Chrome Dev Tools 進(jìn)行頁(yè)面性能分析的步驟說(shuō)明(前端性能優(yōu)化)

    利用 Chrome Dev Tools 進(jìn)行頁(yè)面性能分析的步驟說(shuō)明(前端性能優(yōu)化)

    這篇文章主要介紹了利用 Chrome Dev Tools 進(jìn)行頁(yè)面性能分析的步驟說(shuō)明(前端性能優(yōu)化),本文給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • 原生js實(shí)現(xiàn)俄羅斯方塊

    原生js實(shí)現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 七種JS實(shí)現(xiàn)數(shù)組去重的方式

    七種JS實(shí)現(xiàn)數(shù)組去重的方式

    這篇文章主要介紹了七種JS實(shí)現(xiàn)數(shù)組去重的方式,下面文章以JS數(shù)組去重的相關(guān)資料展開(kāi)全文內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2021-12-12
  • Webpack實(shí)現(xiàn)多頁(yè)面打包的方法步驟

    Webpack實(shí)現(xiàn)多頁(yè)面打包的方法步驟

    本文主要介紹了Webpack實(shí)現(xiàn)多頁(yè)面打包的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • JS實(shí)現(xiàn)同一DOM元素上onClick事件與onDblClick事件并存的解決方法

    JS實(shí)現(xiàn)同一DOM元素上onClick事件與onDblClick事件并存的解決方法

    這篇文章主要介紹了JS實(shí)現(xiàn)同一DOM元素上onClick事件與onDblClick事件并存的解決方法,結(jié)合實(shí)例形式分析了javascript通過(guò)針對(duì)單擊onclick事件增加定時(shí)器進(jìn)行onClick事件與onDblClick事件的區(qū)別判定操作,需要的朋友可以參考下
    2018-06-06
  • Javascript實(shí)現(xiàn)可旋轉(zhuǎn)的圓圈實(shí)例代碼

    Javascript實(shí)現(xiàn)可旋轉(zhuǎn)的圓圈實(shí)例代碼

    這篇文章主要介紹了Javascript實(shí)現(xiàn)可旋轉(zhuǎn)的圓圈實(shí)例代碼,可實(shí)現(xiàn)圓圈的旋轉(zhuǎn)與運(yùn)動(dòng)效果,涉及javascript動(dòng)態(tài)操作頁(yè)面元素屬性及進(jìn)行相應(yīng)數(shù)學(xué)運(yùn)算的技巧,需要的朋友可以參考下
    2015-08-08
  • javascript下with 的簡(jiǎn)化代碼寫(xiě)法

    javascript下with 的簡(jiǎn)化代碼寫(xiě)法

    with 語(yǔ)句通常用來(lái)縮短特定情形下必須寫(xiě)的代碼量。在下面的例子中,請(qǐng)注意 Math 的重復(fù)使用
    2008-02-02
  • 使用JavaScript檢測(cè)Firefox瀏覽器是否啟用了Firebug的代碼

    使用JavaScript檢測(cè)Firefox瀏覽器是否啟用了Firebug的代碼

    在啟用Firebug的情況下訪問(wèn)GMail會(huì)收到一個(gè) Firebug會(huì)讓Gmail變慢 的警告,這是如何檢測(cè)的呢?這里就說(shuō)說(shuō)。
    2010-12-12

最新評(píng)論