gpt4 book ai didi

javascript - 在 javascript 中访问可能嵌套的属性?

转载 作者:行者123 更新时间:2023-11-29 15:42:53 24 4
gpt4 key购买 nike

<分区>

var foo = function(o) {...

参数 o 可能为 null,或者它可能包含也可能不包含某些嵌套对象。

我想找到 o.foo.bar.baz.chomp.mumble 的值。如果任何 mumble 或其包含对象为 null,我想得到 null。

我可以这样做(在这种情况下,我可以假设所有路径元素都是对象或不存在——没有一个是非空的,非对象):

var mumble = o && o.foo && o.foo.bar && o.foo.bar.baz 
&& o.foo.bar.baz.chomp ? o.foo.bar.baz.chomp.mumble : null;

或者我可以这样做:

var mumble = null;
try {
mumble = o.foo.bar.baz.chomp.mumble;
}
catch { //ignore null pointer exception}

或者我可以这样做:

var nestedVal = function( o, a ) { 

if( isString( a ) ) {
a = a.split( '.' );
}
var i = 0, j = a.length;
for( ; o && isObject( o ) && i < j; ++i) {
o = o[ a[ i ] ];
}
return i == j ? o : null;
};


var mumble = nestedValue(o, "foo.bar.baz.chomp.mumble");

哪个更好,或者是否有第四种更好的方法?

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