JSON对象属性名与属性值的提取
来源:互联网 发布:阿里云主机管理控制台 编辑:程序博客网 时间:2024/05/21 10:32
我们有一个对象数组,里面存储着通讯录。
函数 lookUp 有两个预定义参数:firstName值和prop属性 。
函数将会检查通讯录中是否存在一个与传入的 firstName 相同的联系人。如果存在,那么还需要检查对应的联系人中是否存在 prop属性。
如果它们都存在,函数返回prop属性对应的值。
如果firstName 值不存在,返回 “No such contact”。
如果prop 属性不存在,返回 “No such property”。
//初始化变量var contacts = [ { "firstName": "Akira", "lastName": "Laine", "number": "0543236543", "likes": ["Pizza", "Coding", "Brownie Points"] }, { "firstName": "Harry", "lastName": "Potter", "number": "0994372684", "likes": ["Hogwarts", "Magic", "Hagrid"] }, { "firstName": "Sherlock", "lastName": "Holmes", "number": "0487345643", "likes": ["Intriguing Cases", "Violin"] }, { "firstName": "Kristian", "lastName": "Vos", "number": "unknown", "likes": ["Javascript", "Gaming", "Foxes"] }];
function lookUp(firstName, prop){ for(var i = 0;i<contacts.length;i++) { //如果firstName存在 if(firstName == contacts[i].firstName) { //在firstName存在的条件下,如果prop存在 if(contacts[i].hasOwnProperty(prop)) { //返回prop的属性值 return contacts[i][prop]; } //firstName存在但prop不存在 else { //返回 "No such property" return "No such property"; } }}//循环结束仍没有返回结果,说明firstName不存在,返回"No such contact" return "No such contact";}//调用函数lookUp("Kristian", "lastName");
注意:在循环中逻辑关系较为复杂,一定要理清。尤其是容易写成以下代码:
function lookUp(firstName, prop) { for(var i = 0; i < contacts.length; i++) { if(contacts[i].firstName == firstName) { if(contacts[i].hasOwnProperty(prop)) { return contacts[i][prop]; } else { return "No such property"; } } return "No such contact"; } }
这两段代码的区别就是第二段代码将return “No such contact”放在了for循环之中if语句之外,这样会造成在第一次循环中如果传入的firstName不是“Akira”的话,直接返回”No such contact”,而不去检查数组中其他的元素,造成逻辑错误。
另外,使用hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
阅读全文
1 0
- JSON对象属性名与属性值的提取
- 数组对象的属性名和属性值的提取
- javascript的json对象中属性名使用uuid
- 反射获取对象的属性名和对应的值并转为json字符串
- 获取JSON对象的属性值
- JavaScript:对象作为对象的属性名
- 获取json数据的属性名
- 获取对象的属性名、属性值、属性特性,协议列表
- java8 提取集合对象的每个属性
- 动态设置对象的属性名与该属性对应的变量
- JAVA对象通过jackson转成json格式,属性名首字母变成小写的解决方法
- JAVA对象jackson序列化json属性名首字母变成小写的解决方案
- JAVA对象jackson序列化json属性名首字母变成小写的解决方案
- JAVA对象jackson序列化json属性名变成小写的解决方案
- JAVA对象jackson序列化json属性名变成小写的解决方案
- JSON过滤对象中属性名相同(搜索的问题及答案)
- js中遍历对象的属性名和值
- 属性名不一致的对象深度克隆
- 【数论 && 公式推导】LightOJ
- django-rest-framework权限控制
- can not install python-pip python-dev in ubuntu
- 三角形的路径权
- 第7周 Climbing Stairs
- JSON对象属性名与属性值的提取
- 个税计算器
- CODE[VS] 1105 过河 状态压缩DP
- 求两个单链表是否相交(包括环的问题)
- 使用webpack打包react项目中遇到的问题(二)
- 4-1 复数类的运算符重载
- 系统日志
- Java通过Executors提供四种线程池
- JAVA代理模式