[Java教程]javascript判断嵌套对象属性是否存在
0 2012-07-18 19:01:40
很多时候,我们需要判断对象的属性是否存在,以便进行下一步的操作
而对象的属性又有一定的依赖关系,比如user.house.dog
//只有当user.house为真的时候才能判断user.hourse.dog//安全的做法
if(user) {
if(user.house) {
if(user.houre.dog) {
//如果层级很深的话,就恶心了
}
}
}
如果单纯的把条件换为user.house.dog,就完美了,开始动手function isKeyExists(path, object) { //在browser或者nodejs下,都能安全取得全局对象 var global = (function() { return this; }()); //将传入的对象路径字符串拆分为数组 var pathList = path.split('.'); var obj = null; //从全局对象中取出名字为 数组[0]的对象 var globalObj = global[pathList.shift()]; //如果指定了对象,就从对象中查找,如果没有就使用全局环境 obj = object || globalObj; if(!obj) { return false; } for(var i=0; key=pathList[i]; i++) { if(!obj[key]) { return false; } obj = obj[key]; } return true;}
var user = { house: { dog: 'somedog' }};//在浏览器和nodejs中都能正确判断if(isKeyExists('user.house.dog', user)) { console.log('hello dog');} else { console.log('nothing');} 本文网址:http://www.shaoqun.com/a/36062.html
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。
JavaScript
0