📅  最后修改于: 2023-12-03 15:28:17.422000             🧑  作者: Mango
字典是一种无序键值对的数据结构,在 JavaScript 中被称为对象(Object)。在程序中,字典通常用来存储和检索数据,如配置信息、用户信息等。
JavaScript 中的字典可以与常见的数据类型进行转换,例如 JSON(JavaScript Object Notation)格式、Map(ES6 中新增的数据结构)等。
在 JavaScript 中,可以使用对象字面量语法({})来创建字典,如下所示:
let person = {
name: 'John',
age: 30,
city: 'New York'
};
该字典包含三个键值对,分别是 name、age 和 city,其对应的值分别为 'John'、30 和 'New York'。
可以使用点号(.)或方括号([])来访问字典中的值,如下所示:
let person = {
name: 'John',
age: 30,
city: 'New York'
};
console.log(person.name); // 输出 'John'
console.log(person['age']); // 输出 30
其中,person.name 和 person['age'] 分别用于访问字典中的 name 和 age 键对应的值。
可以通过赋值操作符来修改字典中的键值对,如下所示:
let person = {
name: 'John',
age: 30,
city: 'New York'
};
person.age = 40;
person['city'] = 'Los Angeles';
console.log(person); // 输出 { name: 'John', age: 40, city: 'Los Angeles' }
其中,person.age = 40 用于将 age 键对应的值修改为 40,person['city'] = 'Los Angeles' 用于将 city 键对应的值修改为 'Los Angeles'。
可以使用 delete 运算符来删除字典中的键值对,如下所示:
let person = {
name: 'John',
age: 30,
city: 'New York'
};
delete person.city;
console.log(person); // 输出 { name: 'John', age: 30 }
其中,delete person.city 用于删除字典中 city 键对应的键值对。
可以使用 for...in 循环来遍历字典中的键值对,如下所示:
let person = {
name: 'John',
age: 30,
city: 'New York'
};
for (let key in person) {
console.log(key + ': ' + person[key]);
}
其中,for (let key in person) 用于遍历 person 字典中的所有键,key 为当前被遍历的键,person[key] 为当前被遍历键对应的值。
可以使用 Object.keys() 方法将字典中的键转换为数组,如下所示:
let person = {
name: 'John',
age: 30,
city: 'New York'
};
let keys = Object.keys(person);
console.log(keys); // 输出 ['name', 'age', 'city']
其中,Object.keys(person) 用于将 person 字典中的所有键转换为数组,赋值给变量 keys。
可以使用数组的 reduce() 方法将数组转换为字典,如下所示:
let arr = [['name', 'John'], ['age', 30], ['city', 'New York']];
let person = arr.reduce(function(obj, keyVal) {
obj[keyVal[0]] = keyVal[1];
return obj;
}, {});
console.log(person); // 输出 { name: 'John', age: 30, city: 'New York' }
其中,arr.reduce(function(obj, keyVal) {}) 用于将数组 arr 中的每一项转换为键值对,并将其赋值给变量 person。
JavaScript 中的字典是一种常见的数据结构,它可以被用来存储和检索数据。创建、访问、修改、删除和遍历字典的方法都非常简单,同时也可以和其他数据类型进行转换。熟练地掌握字典的使用,能够为程序开发提供很大的便利。