属性是否存在的判断
2016-07-11 16:48
351 查看
今天在做FreeCodeCamp的Profile Lookup时,test一直不正确,最后通过代码如下:
初始代码是这样子的:
搞混了属性值和属性是否存在的判断。
期间在判断prop属性是否存在还使用了另外几种判断方法:
循环遍历对象的属性
in 方法
它可以判断不存在的属性和存在的属性但其值为undefined
是否为undefined
当属性存在并值为undefined时无法判断
简单的一点心得,细水长流。
//Setup 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){ // Only change code below this line var back; for(var i=0; i<contacts.length; i++){ if(contacts[i].firstName == firstName && (prop in contacts[i])){ back = contacts[i][prop]; break; } if(contacts[i].firstName != firstName && (prop in contacts[i])){ back = "No such contact"; } if(contacts[i].firstName == firstName && !(prop in contacts[i])){ back = "No such property"; break; } } return back; // Only change code above this line } // Change these values to test your function lookUp("Akira", "address");
初始代码是这样子的:
function lookUp(firstName, prop){ // Only change code below this line var back; for(var i=0; i<contacts.length; i++){ if(contacts[i].firstName == firstName && contacts[i][prop] !== null){ back = contacts[i][prop]; break; } if(contacts[i].firstName != firstName && (prop in contacts[i])){ back = "No such contact"; } if(contacts[i].firstName == firstName && !(prop in contacts[i])){ back = "No such property"; break; } } return back; // Only change code above this line }
搞混了属性值和属性是否存在的判断。
期间在判断prop属性是否存在还使用了另外几种判断方法:
循环遍历对象的属性
in 方法
它可以判断不存在的属性和存在的属性但其值为undefined
是否为undefined
当属性存在并值为undefined时无法判断
简单的一点心得,细水长流。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解