中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS基于對象的特性實現去除數組中重復項功能詳解

發布時間:2020-10-06 17:16:17 來源:腳本之家 閱讀:193 作者:Small_Teemo 欄目:web開發

本文實例講述了JS基于對象的特性實現去除數組中重復項功能。分享給大家供大家參考,具體如下:

數組去重的方法有很多,不同的方法的效率也不相同。如前面文章JS實現的數組去除重復數據算法小結中就總結分析了4種實現方法。這里介紹一種高效數組去重的方法:根據JS對象的特性去除數組中重復項的方法。

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

引例:說明對象key值的唯一性,即當重新給js已有屬性賦值的時候,實際上是覆蓋了key,而不是新建了key

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

二、數組去重步驟解析

分為兩個步驟:

1. 把要去重的數組轉換成一個js的對象并返回。轉換規則:把數組中的值變成js對象當中的key,然后value給任意值

2. 把步驟1中的對象再還原成數組,對象的key作為數組中的元素。

三、數組去重實現

var arr=[1,2,3,4,5,23,4,2,4,3];
//1.把數組裝換成對象,數組的元素作為對象的key,然后返回對象
function toObject(ac_array){
    var obj={};//私有的對象
    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.把對象的key獲取出來作為數組的元素,然后返回數組
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));
}
//測試
var uniq_array=uniq(arr);
console.log(uniq_array);//["1", "2", "3", "4", "5", "23"]

代碼測試結果:

JS基于對象的特性實現去除數組中重復項功能詳解

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

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

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

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

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數組操作技巧總結》、《JavaScript排序算法總結》、《JavaScript數學運算用法總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結》

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昆山市| 丰顺县| 民丰县| 长宁区| 天气| 瓮安县| 贵定县| 双鸭山市| 越西县| 荥阳市| 阿克苏市| 平乐县| 汉沽区| 安仁县| 抚宁县| 资溪县| 张家川| 五峰| 柘城县| 巨鹿县| 依兰县| 文安县| 岑溪市| 长寿区| 郑州市| 柯坪县| 晋宁县| 土默特右旗| 湖北省| 万全县| 池州市| 普兰店市| 张北县| 于都县| 土默特左旗| 承德市| 贵阳市| 满城县| 儋州市| 霍林郭勒市| 大新县|