gpt4 book ai didi

javascript - 如何检查对象链中任何位置的 'undefined'?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:09:06 24 4
gpt4 key购买 nike

我想检查复杂对象链中是否缺少任何对象。我提出了以下解决方案,是否有更好的方法来实现同样的效果?

var lg = console.log;
var t = { a:{a1: 33, a12:{ aa1d: 444, cc:3 } }, b:00};
var isDefined = function(topObj, propertyPath) {
if (typeof topObj !== 'object') {
throw new Error('First argument must be of type \'object\'!');
}
if (typeof propertyPath === 'string') {
throw new Error('Second argument must be of type \'string\'!');
}
var props = propertyPath.split('.');
for(var i=0; i< props.length; i++) {
var prp = props[i];
lg('checking property: ' + prp);
if (typeof topObj[prp] === 'undefined') {
lg(prp + ' undefined!');
return false;
} else {
topObj = topObj[prp];
}
}
return true;
}
isDefined(t, 'a.a12.cc');

最佳答案

您可以像这样更简单地定义您的函数:

var isDefined = function(value, path) {
path.split('.').forEach(function(key) { value = value && value[key]; });
return (typeof value != 'undefined' && value !== null);
};

关于 jsfiddle 的工作示例.

关于javascript - 如何检查对象链中任何位置的 'undefined'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11689809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com