成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

我對JS字典的簡單學(xué)習(xí)

CntChen / 2381人閱讀

摘要:我對字典的簡單學(xué)習(xí)字典的概念集合字典和散列表都可以來存儲不重復(fù)的值。字典也被稱為映射。中有集合類的實現(xiàn),也有字典類的實現(xiàn)。相關(guān)操作方法實現(xiàn)方法,判斷某個鍵值是否在這個字典中,有則返回。實現(xiàn)方法,將字典所有的值以數(shù)組的形式返回。

我對JS字典的簡單學(xué)習(xí) 字典的概念

集合、字典和散列表都可以來存儲不重復(fù)的值。
在集合中我們使用[值,值]來保存,在字典和散列表中使用[鍵,值]來存儲數(shù)據(jù)。

字典也被稱為映射。

ES6中有集合Set類的實現(xiàn),也有字典Map類的實現(xiàn)。

function  Dictionary() {
  var items = {};
}
相關(guān)操作方法

實現(xiàn)has(key)方法,判斷某個鍵值是否在這個字典中,有則返回true。

this.has = function(key) {
  return key in items;
}

實現(xiàn)set(key, value)方法,向字典中添加新元素。

this.set = function(key, value) {
  items[key] = value;
}

實現(xiàn)remove(key)方法,從字典中移除鍵值對應(yīng)的數(shù)據(jù)值。

this.remove = function(key) {
  if(this.has(key)) {
    delete items[key];
    return true;
  }
  return false;
}

實現(xiàn)get(key)方法,查找特定的值。

this.get = function(key) {
  return this.has(key) ? items[key] : undefined;
}

引申:undefinednull不一樣,null表示變量沒有值,undefined表示變量被聲明但未賦值。

實現(xiàn)values()方法,將字典所有的值以數(shù)組的形式返回。

this.values = function() {
  var values = [];
  for(var k in items) {
    if(this.hasOwnProperty(k)) {
      values.push(items[key]);
    }
  }
  return values;
}

clear(),size(),keys()方法與Set類一致,這里不討論了。

實現(xiàn)getItems()方法

this.getItems = function() {
  return items;
}
使用Dictionary類

創(chuàng)建一個類的實例,然后給它添加三條電子郵件地址。

var dictionary = new Dictionary();
dictionary.set("Gandalf", "[email protected]");
dictionary.set("John", "[email protected]");
dictionary.set("Tyrion", "[email protected]");

使用方法

console.log(dictionary.has("Gandalf")); //true
console.log(dictionary.size()); //3
console.log(dictionary.keys()); //["Gandalf", "John", "Tyrion"];
console.log(dictionary.values()); //["[email protected]", [email protected]", "[email protected]"]
console.log(dictionary.get("Tyrion")); //[email protected]

執(zhí)行以下代碼

dictionary.remove("John");

console.log(dictionary.keys()); //["Gandalf", "Tyrion"]
console.log(dictionary.values()); //["[email protected]", "[email protected]"]
console.log(dictionary.getItems()); //{Gandalf: "[email protected]", Tyrion: "[email protected]"}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/82362.html

相關(guān)文章

  • 讀懂immutable-jsMap數(shù)據(jù)結(jié)構(gòu)

    摘要:一向量字典樹字典樹,一種用空間換取時間的樹形數(shù)據(jù)結(jié)構(gòu),主要特點是利用字符串的公共前綴來挺升查詢性能。還有最終的數(shù)組表示的真實存儲的鍵值,存儲了,存儲了。這其中還有一種節(jié)點進行了沖突的處理。 本文受深入探究Immutable.js的實現(xiàn)機制這篇文章啟發(fā),結(jié)合自己對Map源碼的解讀,談?wù)勎覍mmutable-js中map數(shù)據(jù)結(jié)構(gòu)的理解,若有不正確的地方,歡迎指正。 一、Vector Tr...

    jone5679 評論0 收藏0
  • 我對JS簡單學(xué)習(xí)

    摘要:我對棧的學(xué)習(xí)因為是個新手,所以都是最簡單的知識學(xué)習(xí)梳理。棧是一種遵從后進先出原則的有序集合,新添加的或者待刪除的元素都保留在棧的末尾,稱作棧頂,另一端叫做棧底。棧的學(xué)習(xí)棧的創(chuàng)建創(chuàng)建一個類來表示棧。對于棧來說只能用和方法來進行添加和刪除元素。 我對棧的學(xué)習(xí) 因為是個新手,所以都是最簡單的知識學(xué)習(xí)梳理。 什么是棧 數(shù)組是計算機科學(xué)中最常用的數(shù)據(jù)結(jié)構(gòu),是數(shù)據(jù)元素的集合。有時候我們需要一種添加...

    Cobub 評論0 收藏0
  • 我對JS鏈表簡單學(xué)習(xí)

    摘要:我對鏈表的學(xué)習(xí)什么是鏈表要存儲多個元素,數(shù)組可能是最常用的數(shù)據(jù)結(jié)構(gòu)。鏈表的學(xué)習(xí)創(chuàng)建一個鏈表各種方法表示要加入列表的項,它包含一個屬性以及一個屬性,表示要添加到列表的值,表示指向列表下一個節(jié)點項的指針。 我對JS鏈表的學(xué)習(xí) 什么是鏈表 要存儲多個元素,數(shù)組可能是最常用的數(shù)據(jù)結(jié)構(gòu)。這種數(shù)據(jù)結(jié)構(gòu)非常方便,但是有一個缺點:從數(shù)組的起點或者中間插入或移除項的成本非常高,因為需要移動元素(比如你插...

    余學(xué)文 評論0 收藏0
  • 我對JS集合簡單學(xué)習(xí)

    摘要:我對集合的學(xué)習(xí)第一步知道相關(guān)概念集合是由一組無序且唯一的項組成的,在中已經(jīng)實現(xiàn)了類似的類。就是集合第二步實現(xiàn)相關(guān)操作方法首先實現(xiàn)方法,判斷值是否在集合中,返回布爾值。操作符還有另外一種實現(xiàn)方法,方法返回表明一個對象是否具有特定屬性的布爾值。 我對集合的學(xué)習(xí) 第一步知道相關(guān)概念 集合是由一組無序且唯一的項組成的,在ES6中已經(jīng)實現(xiàn)了類似的Set類。 function Set() { ...

    paney129 評論0 收藏0
  • 由 sort 中 key 用法淺談 python

    摘要:但是實際寫程序中,我們經(jīng)常會寫出許多繁雜的丑陋的代碼。特別推薦,許多代碼讓我獲益匪淺,比如這里對的使用。用可以寫出很簡單直觀的代碼,如下當然,上面不考慮效率,這里有一個利用分治法思想的高效的方法。更多文章更多閱讀中參數(shù)的用法高級編程技巧 用 Python 時間也算不短了,但總感覺自己在用寫 C++ 代碼的思維寫 Python,沒有真正用到其作為腳本語言的優(yōu)勢。之前刷 LeetCode ...

    keke 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<