JavaScript中的字典是一種非常常見的數據類型,也被稱為鍵值對集合。一個字典包含了若干個鍵-值對,其中每一個鍵唯一對應一個值。
在JavaScript中,可以通過對象來創建一個字典,對象的屬性就充當了字典的鍵,屬性的值則是字典中對應鍵的值:
let dict = { // 創建一個字典
name: "Lucy",
age: 22,
job: "teacher"
};
通過“鍵名.屬性值”的方式可以直接獲取字典中對應鍵的值:
let name = dict.name; // 獲取name鍵對應的值
let age = dict.age; // 獲取age鍵對應的值
let job = dict.job; // 獲取job鍵對應的值
除了通過點號來獲取屬性值之外,還可以使用方括號來獲取字典中對應鍵的值。這種方式對于一些鍵名不合法的情況(如包含空格、數字等)非常有用:
let dict = { // 創建一個字典
"pet name": "Tom",
"3d model": "car"
};
let petName = dict["pet name"]; // 獲取鍵名為"pet name"的值
let model = dict["3d model"]; // 獲取鍵名為"3d model"的值
在創建字典的時候,還可以指定一個默認的值。在訪問一個不存在的鍵時,將會返回這個默認值:
let dict = { // 創建一個帶默認值的字典
name: "Jack",
age: 18
};
dict.job = "teacher"; // 添加一個新的鍵
dict.city = "Beijing"; // 添加一個新的鍵
let hobby = dict.hobby || "unknown"; // 訪問一個不存在的鍵
上面的代碼中,我們設置了默認值為"unknown"。當我們訪問一個不存在的鍵hobby時,將會返回默認值"unknown"。
在字典中添加、修改或刪除鍵-值對非常簡單。通過賦值的方式可以添加或修改一個鍵對應的值,通過delete運算符可以刪除字典中的一個鍵-值對:
let dict = { // 創建一個字典
name: "Lily",
age: 20
};
dict.job = "programmer"; // 添加一個新的鍵
dict.age = 21; // 修改鍵age對應的值
delete dict.name; // 刪除鍵name對應的值
除了對象之外,JavaScript還提供了Map類型來表示字典。Map類型支持任意類型的鍵(不限于字符串類型),并且與對象不同,你可以通過使用for...of循環來遍歷Map類型中所有的鍵-值對:
let map = new Map(); // 創建一個Map對象
map.set("name", "Lucy"); // 添加一個鍵-值對
map.set(1, "str"); // 添加一個鍵-值對
map.set(true, "bool"); // 添加一個鍵-值對
for (let [key, val] of map) { // 遍歷所有鍵-值對
console.log(key + ': ' + val);
}
在上面的代碼中,我們創建了一個Map對象,并添加了三個鍵-值對。然后使用for...of循環遍歷這個Map對象中所有的鍵-值對,并輸出它們的鍵和值。
總之,JavaScript的字典類型非常常見,我們可以使用對象或Map來表示字典。通過鍵名來訪問某個鍵對應的值,可以添加、修改和刪除字典中的鍵-值對。對于需要遍歷的情況,建議使用Map對象。