JavaScript中的字典對(duì)象(Dictionary Object)是一種無(wú)序的鍵/值對(duì)集合。它與數(shù)組不同,數(shù)組只是一種有序的數(shù)值集合。例如,我們可以使用字典對(duì)象來(lái)存儲(chǔ)電子郵件服務(wù)提供商的名稱和對(duì)應(yīng)的SMTP服務(wù)器地址。
創(chuàng)建一個(gè)字典對(duì)象很簡(jiǎn)單。我們使用Object構(gòu)造函數(shù)創(chuàng)建一個(gè)新的對(duì)象,然后使用字面量語(yǔ)法向該對(duì)象添加鍵/值對(duì)。
let emailService = new Object(); emailService["Gmail"] = "smtp.gmail.com"; emailService["Yahoo! Mail"] = "smtp.mail.yahoo.com"; emailService["Outlook.com"] = "smtp.office365.com"; emailService["Zoho Mail"] = "smtp.zoho.com";
在上面的例子中,我們創(chuàng)建了一個(gè)名為emailService的新對(duì)象,并向其中添加了四個(gè)鍵/值對(duì)。我們可以通過(guò)使用方括號(hào)和鍵來(lái)訪問(wèn)這些值,就像訪問(wèn)數(shù)組元素一樣。
console.log(emailService["Gmail"]); // 輸出:smtp.gmail.com console.log(emailService["Zoho Mail"]); // 輸出:smtp.zoho.com
除了使用方括號(hào)語(yǔ)法之外,我們還可以使用點(diǎn)語(yǔ)法來(lái)訪問(wèn)字典對(duì)象的值。這是因?yàn)樵贘avaScript中,字典對(duì)象的鍵也可以被認(rèn)為是對(duì)象的屬性。
console.log(emailService.Gmail); // 輸出:smtp.gmail.com console.log(emailService["Yahoo! Mail"]); // 輸出:smtp.mail.yahoo.com
如果我們想要獲取字典對(duì)象中所有的鍵或值,我們可以使用for-in循環(huán)。for-in循環(huán)會(huì)枚舉對(duì)象中的所有屬性(包括繼承的屬性),并將其鍵存儲(chǔ)在變量中,并與該對(duì)象的屬性相對(duì)應(yīng)。
for(let key in emailService){ console.log(key + ": " + emailService[key]); }
當(dāng)遍歷對(duì)象中的屬性時(shí),我們可以在循環(huán)體中執(zhí)行任何操作,例如將鍵和值存儲(chǔ)到另一個(gè)數(shù)組中。
let keys = []; let values = []; for(let key in emailService){ keys.push(key); values.push(emailService[key]); } console.log(keys); // 輸出:["Gmail", "Yahoo! Mail", "Outlook.com", "Zoho Mail"] console.log(values); // 輸出:["smtp.gmail.com", "smtp.mail.yahoo.com", "smtp.office365.com", "smtp.zoho.com"]
字典對(duì)象也支持一些常見的操作,例如添加新的鍵/值對(duì)、刪除鍵/值對(duì)和檢查對(duì)象是否包含特定鍵等。
emailService.AOL = "smtp.aol.com"; // 添加新的鍵/值對(duì) delete emailService["Outlook.com"]; // 刪除指定的鍵/值對(duì) console.log("Gmail" in emailService); // 輸出:true console.log("Hotmail" in emailService); // 輸出:false
總之,在JavaScript中,字典對(duì)象是一種非常有用的數(shù)據(jù)結(jié)構(gòu),可以幫助我們輕松地存儲(chǔ)和訪問(wèn)鍵/值對(duì)。它的靈活性和易于使用使其成為JavaScript程序員的首選之一。