JavaScript对象--更新对象属性,添加新属性,删除属性,对象查找,测试对象属性,访问嵌套属性,访问嵌套数组(补充内容)

10世界杯决赛

文章目录

JavaScript 对象1 更新对象属性2 给对象添加新属性3 删除对象的属性4 使用对象进行查找5 测试对象的属性6 访问嵌套对象7 访问嵌套数组

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 开始