【JS】js动态对对象添加、设置、删除属性名和属性值
js中访问对象属性有两种方法:点获取法和方括号获取法。
letuser={//一个对象name:'John',//键'name',值'John'age:30,//键'age',值30。列表中的最后一个属性应以逗号结尾:this使我们更容易添加、删除和移动属性};
使用点表示法访问属性值alert(user.name);//John使用方括号访问属性值alert(user[name]);//John注释:如果我们遍历一个对象,获取属性的顺序就是属性添加的顺序。它们的顺序相同吗?
简短的回答是:“有一个特殊的顺序”:整数属性被排序,其他属性按它们创建的顺序显示。
使用delete关键字删除对象属性
删除用户.年龄;删除用户[年龄];
获取物体属性最常用的方法是点获取法。
但当我们需要动态给对象添加属性和属性值时,点获取方式就显得不方便了,尤其是当我们不知道属性名称的时候。这时候方括号获取方式就派上用场了。
letorder={id:1,name:'xxxx',}//如果直接赋值新属性order['logisticsNo']='xxxx';//如果添加的属性是[],可以先创建属性值将其留空Arrayorder['logisticsNo']=[];order['logisticsNo'].push(data);//注意只有数组才有push,否则会报错//也可以使用变量名letkey='logisticsNo';order[key]=[];order[key].push(data);
创建对象时,我们可以在对象字面量中使用方括号。这称为计算属性。
letFruit=Prompt('买哪种水果?','苹果');letbag={[fruit]:5,//属性名称从fruit变量中获取};警报;//5如果水果='苹果'
计算属性的含义很简单:[fruit]表示属性名称应从fruit变量中获取。
因此,如果用户输入“apple”,则该包将变为{apple:5}。
本质上,这具有与以下相同的语法效果:
letFruit=提示('买哪种水果?','苹果');letbag={};//从fruit变量bag[fruit]=5中获取值;
我们可以在方括号内使用更复杂的表达式:
letFruit='apple';letbag={[fruit+'Computers']:5//bag.appleComputers=5};
与其他语言相比,JavaScript对象有一个需要注意的特性:可以通过任何属性来访问它们。即使该属性不存在,也不会报错!
读取不存在的属性只会返回未定义。所以我们可以很容易地确定一个属性是否存在:
让user={};alert(user.noSuchProperty===undefined);//true表示不存在该属性
in的左侧必须是属性名称。通常是带引号的字符串。
letuser={name:'John',age:30};alert('age'inuser);//true,user.age存在alert('blabla'inuser);//false,user.blabla不存在。
建议直接使用in来判断对象的属性是否存在。
让用户={name:'约翰',age:30,isAdmin:true};for(letkeyinuser){//按键alert(key);//name,age,isAdmin//属性key的值alert(user[key]);//约翰,30岁,正确}
检查空对象functionisEmpty(obj){for(letkeyinobj){//如果进入循环,说明有属性。返回假;返回真;}
对象属性总和letsalaries={John:100,Ann:160,Pete:130};令总和=0;for(letkeyinsalaries){sum+=salaries[key];}alert(sum);//390
将所有数值属性值乘以2//调用之前letmenu={width:200,height:300,title:'我的菜单'};乘数字;//调用函数后menu={width:400,height:600,title:'我的菜单'};functionmultipNumeric(obj){for(letkeyinobj){if(typeofobj[key]=='number'){obj[键]*=2;}}}
大家好,今天小编关注到一个比较有意思的话题,就是关于培训机构需要公益属性的问题,于是小编就整理了5个相关介绍培训机构需要公益属性的解答,让我们一起看看吧。什么叫…
大家好,今天小编关注到一个比较有意思的话题,就是关于艺术培训机构法人属性的问题,于是小编就整理了4个相关介绍艺术培训机构法人属性的解答,让我们一起看看吧。法人机…
大家好,今天小编关注到一个比较有意思的话题,就是关于美术培训机构目标对象的问题,于是小编就整理了3个相关介绍美术培训机构目标对象的解答,让我们一起看看吧。开办美…
大家好,今天小编关注到一个比较有意思的话题,就是关于培训机构突出公益属性的问题,于是小编就整理了4个相关介绍培训机构突出公益属性的解答,让我们一起看看吧。培训机…
【JavaScript进阶教程】数组遍历新方法的说明及使用文章已被专栏收录:JavaScript进阶教程作者:卡卡西最近怎么样?文章简介:欢迎来到JavaScr…
2024-10-23 10:48:05
2024-10-23 08:48:12
2024-10-23 06:36:10
2024-10-23 04:48:07
2024-10-23 02:57:05
大家好,今天小编关注到一个比较有意思的话题,就是关于学电脑编程需要电脑专业吗的问…
大家好,今天小编关注到一个比较有意思的话题,就是关于培训机构自救经验分享心得的问…