亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

【前端數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)】字典

Acceml / 2499人閱讀

摘要:一構(gòu)造字典數(shù)據(jù)結(jié)構(gòu)我們將使用實(shí)現(xiàn)字典結(jié)構(gòu),各部分功能使用注釋說(shuō)明。參考資料數(shù)據(jù)結(jié)構(gòu)與算法描述第章字典由于書(shū)上的源代碼出現(xiàn)了錯(cuò)誤,因此代碼根據(jù)實(shí)際運(yùn)行結(jié)果做了相應(yīng)修改。

前言

字典是一種以鍵-值對(duì)形式存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),如同手機(jī)通訊錄中,想要尋找一個(gè)電話(huà)時(shí),只要找到名字就可以找到其電話(huà)號(hào)碼。
JavaScript的Object類(lèi)就是以字典的形式設(shè)計(jì)的。這里將使用Object類(lèi)的特性,實(shí)現(xiàn)一個(gè)Dictionary類(lèi),讓字典類(lèi)型的對(duì)象使用起來(lái)更加簡(jiǎn)單。

一、構(gòu)造字典數(shù)據(jù)結(jié)構(gòu)

我們將使用JavaScript實(shí)現(xiàn)字典結(jié)構(gòu),各部分功能使用注釋說(shuō)明。

/**
 * Dictionary 構(gòu)造方法
 * datastore 存儲(chǔ)數(shù)據(jù)
 */
function Dictionary () {
  this.datastore = new Array()
  this.add = add
  this.find = find
  this.remove = remove
  this.showAll = showAll
  this.count = count
  this.clear = clear
  this.showAllBySort = showAllBySort
}

/**
 * add() 方法進(jìn)行添加數(shù)據(jù)
 * @param {*} key
 * @param {*} value
 */
function add (key, value) {
  this.datastore[key] = value
}

/**
 * find() 方法進(jìn)行查找key值對(duì)應(yīng)的value
 * @param {*} key
 */
function find (key) {
  return this.datastore[key]
}

/**
 * remove() 方法進(jìn)行刪除對(duì)應(yīng)的key值鍵值對(duì)
 * @param {*} key
 */
function remove(key) {
  delete this.datastore[key]
}

/**
 * showAll() 方法進(jìn)行遍歷顯示所有的key、value
 */
function showAll () {
  let datakeys = Array.prototype.slice.call(Object.keys(this.datastore))
  for (let key in datakeys) {
    console.log(datakeys[key] + " -> " + this.datastore[datakeys[key]])
  }
}

/**
 * showAllBySort() 方法進(jìn)行遍歷顯示所有排序后的key、value
 */
function showAllBySort () {
  let datakeys = Array.prototype.slice.call(Object.keys(this.datastore)).sort()
  for (let key in datakeys) {
    console.log(datakeys[key] + " -> " + this.datastore[datakeys[key]])
  }
}

其中有幾點(diǎn)個(gè)人認(rèn)為需要強(qiáng)調(diào):

我們想要?jiǎng)h除鍵-值對(duì)時(shí)需要使用JavaScript中的內(nèi)置函數(shù)——delete。該函數(shù)使用對(duì)鍵的引用作為參數(shù),同時(shí)刪除鍵與其關(guān)聯(lián)的值。

我們使用Object類(lèi)keys()方法可以返回傳入?yún)?shù)中存儲(chǔ)的所有鍵。(Object.keys()for...in循環(huán)的區(qū)別主要在于for...in循環(huán)會(huì)枚舉其原型鏈上的屬性)

slice()方法是從已有的數(shù)組中返回選定的元素

當(dāng)我們?cè)谟?jì)算字典中元素的個(gè)數(shù)時(shí),并沒(méi)有直接使用length方法,因?yàn)楫?dāng)鍵的類(lèi)型為字符串時(shí),length屬性無(wú)法使用

結(jié)束語(yǔ)

使用JavaScript實(shí)現(xiàn)字典數(shù)據(jù)結(jié)構(gòu)相對(duì)來(lái)說(shuō)難度不大,但我們需要注意其中的一些細(xì)節(jié)部分。

參考資料:數(shù)據(jù)結(jié)構(gòu)與算法JavaScript描述 第7章 字典
由于書(shū)上的源代碼出現(xiàn)了錯(cuò)誤,因此代碼根據(jù)實(shí)際運(yùn)行結(jié)果做了相應(yīng)修改。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/107986.html

相關(guān)文章

  • 簡(jiǎn)析前端學(xué)習(xí)python3的基礎(chǔ)

    摘要:元組是靜態(tài)數(shù)組,它們不可變,且其內(nèi)部數(shù)據(jù)一旦創(chuàng)建便無(wú)法改變。元組緩存于運(yùn)行時(shí)環(huán)境,這意味著我們每次使用元組時(shí)無(wú)須訪(fǎng)問(wèn)內(nèi)核去分配內(nèi)存。 以下是整理的JavaScript和python的基礎(chǔ)區(qū)別的整理: 字符串、列表、元組、字典、集合、函數(shù) 字符串 聲明一個(gè)字符串 python str = 123 str = 123 Tips: 如果是三個(gè)引號(hào)的話(huà),那么在py中就是注釋的意思 ...

    summerpxy 評(píng)論0 收藏0
  • 簡(jiǎn)析前端學(xué)習(xí)python3的基礎(chǔ)

    摘要:元組是靜態(tài)數(shù)組,它們不可變,且其內(nèi)部數(shù)據(jù)一旦創(chuàng)建便無(wú)法改變。元組緩存于運(yùn)行時(shí)環(huán)境,這意味著我們每次使用元組時(shí)無(wú)須訪(fǎng)問(wèn)內(nèi)核去分配內(nèi)存。 以下是整理的JavaScript和python的基礎(chǔ)區(qū)別的整理: 字符串、列表、元組、字典、集合、函數(shù) 字符串 聲明一個(gè)字符串 python str = 123 str = 123 Tips: 如果是三個(gè)引號(hào)的話(huà),那么在py中就是注釋的意思 ...

    LiveVideoStack 評(píng)論0 收藏0
  • 前端中常見(jiàn)數(shù)據(jù)結(jié)構(gòu)小結(jié)

    摘要:下列將筆者涉獵到的與前端相關(guān)的數(shù)據(jù)結(jié)構(gòu)案例作如下總結(jié)數(shù)據(jù)結(jié)構(gòu)案例棧其它數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ),中間件機(jī)制隊(duì)列其它數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)鏈表中的的優(yōu)化集合對(duì)應(yīng)中的字典對(duì)應(yīng)中的哈希表一種特殊的字典,可以用來(lái)存儲(chǔ)加密數(shù)據(jù)樹(shù)圖暫時(shí)沒(méi)遇到,不過(guò)里面的蠻常見(jiàn) showImg(https://segmentfault.com/img/remote/1460000016060996?w=640&h=280); 常見(jiàn)數(shù)...

    suemi 評(píng)論0 收藏0
  • 30歲零基礎(chǔ)自學(xué)編程,先學(xué)哪種語(yǔ)言最好?

    摘要:大學(xué),光學(xué)工程研究生畢業(yè),和程序猿完全不搭邊。那怎么辦,試著學(xué)一學(xué)唄,學(xué)習(xí)才是程序猿的天性。所以我在想程序猿是不是都需要新知識(shí)刺激一下,才能保持興奮的頭腦。有句話(huà)說(shuō)的很對(duì)程序猿就像好奇的貓,追著毛球的線(xiàn)頭玩,最后一個(gè)毛球在腦袋里攪漿糊。 說(shuō)說(shuō)我自己的經(jīng)歷。211大學(xué),光學(xué)工程研究生畢業(yè),和程序猿完全不搭邊。 畢業(yè)后進(jìn)了成都某國(guó)字頭研究所,在行業(yè)里摸爬滾打了四年,2018年機(jī)緣巧合在家養(yǎng)...

    xietao3 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<