gpt4 book ai didi

javascript - 属性为空时如何使用if语句

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:38:20 25 4
gpt4 key购买 nike

我有一个简单的 if 语句,如图所示。但是,递归语句最终没有 val 值,而不是执行我的其余代码,windows powershell 只存在 TypeError:无法读取 null 的属性“val”。

chkL = (L) => {
if(L.left.val) chkL(L.left);
}

完整代码如下:

function TreeNode(val) {
this.val = val;
this.left = this.right = null;
}

let tree1 = new TreeNode(1);
tree1.left = new TreeNode(3);
tree1.right = new TreeNode(2);
tree1.left.left = new TreeNode(5);

let tree2 = new TreeNode(2);
tree2.left = new TreeNode(1);
tree2.right = new TreeNode(3);
tree2.left.right = new TreeNode(4);
tree2.right.right = new TreeNode(7);

var mergeTrees = function(t1, t2) {
let ans = Object.assign({}, t1);

chkL = (L) => {
if(L.left.val) chkL(L.left);
}

if(t1.left.val) {
chkL(t1.left);
}


};

mergeTrees(tree1, tree2);

我想知道是否有一种方法可以使用 eval() 之类的东西或在 if 语句中尝试 catch 来阻止脚本中断?请注意,我知道我可以简单地删除逻辑的 .val 部分,但我只是想知道如何执行与此类似的代码。

最佳答案

我认为你应该使用这样的东西:

if (t1.left && t1.left.val) {
// do stuff
}

如果左边的对象上不存在属性 val,则此 if 语句的计算结果为 false,并且不会中断。

关于javascript - 属性为空时如何使用if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50748754/

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