JavaScript 对象
1 更新对象属性
使用点或中括号操作符来更新
const ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"]
};
eg : 将这个愉快的狗的名字更改为字符串 Happy Camper
两种方式来更新对象的 name 属性:
ourDog.name = "Happy Camper";
或者
ourDog["name"] = "Happy Camper";
2 给对象添加新属性
像更改属性一样给 JavaScript 对象添加属性。
eg : 给 ourDog
添加一个属性 bark
:
ourDog.bark = "bow-wow";
或者
ourDog["bark"] = "bow-wow";
3 删除对象的属性
eg : 删除 ourDog
的属性 bark
delete ourDog.bark;
4 使用对象进行查找
对象和字典一样,可以用来存储键/值对。
如果数据是扁平的,你可以用对象来查找你想要的值,而不是链式使用 switch
或 if/else
语句。
当你知道输入数据在某个范围时,这种查找方式使用效果较好。
eg
const alpha = {
1:"Z",
2:"Y",
3:"X",
4:"W",
...
24:"C",
25:"B",
26:"A"
};
alpha[2];
alpha[24];
const value = 2;
alpha[value];
alpha[value]
是字符串 Y
5 测试对象的属性
检查一个对象属性是否存在。
用对象的 .hasOwnProperty(propname)
方法来检查对象是否有指定的属性。
.hasOwnProperty()
找到该属性时返回 true
,找不到该属性时返回 false
。
eg 1 .
const myObj = {
top: "hat",
bottom: "pants"
};
myObj.hasOwnProperty("top");
myObj.hasOwnProperty("middle");
第一个 hasOwnProperty
返回 true
,第二个返回 false
。
eg2 : 修改函数 checkObj
检查 obj
是否有 checkProp
属性。 如果属性存在,返回属性对应的值。 如果不存在,返回"Not Found"
。
function checkObj(obj, checkProp) {
// 只修改这一行下面的代码
if (obj.hasOwnProperty(checkProp)){
return obj[checkProp];
} else {
return "Not Found";
}
// 只修改这一行上面的代码
}
易错:
1 使用obj.hasOwnProperty(“checkProp”)错误
2 使用return obj.checkProp;
这两个错误原因是我当时出现的,还不太清楚错误原因
6 访问嵌套对象
通过连续使用点号表示法和方括号表示法来访问对象的嵌套属性。
eg
const ourStorage = {
"desk": {
"drawer": "stapler"
},
"cabinet": {
"top drawer": {
"folder1": "a file",
"folder2": "secrets"
},
"bottom drawer": "soda"
}
};
ourStorage.cabinet["top drawer"].folder2;
ourStorage.desk.drawer;
ourStorage.cabinet["top drawer"].folder2
是字符串 secrets
ourStorage.desk.drawer
是字符串 stapler
。
7 访问嵌套数组
与访问嵌套对象类似,数组的方括号可以用来嵌套数组进行链式访问
eg
const ourPets = [
{
animalType: "cat",
names: [
"Meowzer",
"Fluffy",
"Kit-Cat"
]
},
{
animalType: "dog",
names: [
"Spot",
"Bowser",
"Frankie"
]
}
];
ourPets[0].names[1];
ourPets[1].names[0];
ourPets[0].names[1]
是字符串Fluffy
ourPets[1].names[0]
是字符串 Spot
索引从 0 开始