如何在不使用return的情况下跳过下一个if语句
How to skip the next if statement without using return?
我有两个if语句。一个将this.node
设置为父节点的下一个同级节点,另一个则将this.node
(递归)设置为下一个节点的最后一个子节点。
if (!this.node.nextSibling) {
this.node = findParentNode(this.node).nextSibling
}
if (this.node.nextSibling) {
this.node = findNode(this.node.nextSibling)
}
不时地,两个if语句会相互影响,换句话说,一个会运行,然后另一个也会运行。我不能使用return
,因为这将停止整个函数(下面还有更多代码)。
如何做到这两种说法不会相互干扰?
为什么不使用else
语句来组合两者呢?
if (!this.node.nextSibling) {
this.node = findParentNode(this.node).nextSibling
} else {
this.node = findNode(this.node.nextSibling)
}
您可以简单地定义一个变量来确定是否应该进入第二个if块,如下所示:
var wasProcessed = false;
if (!this.node.nextSibling) {
this.node = findParentNode(this.node).nextSibling
wasProcessed = true;
}
if (!wasProcessed && this.node.nextSibling) {
this.node = findNode(this.node.nextSibling)
}
您也可以将IF条件放在当前(第一个IF)的ELSE部分。
if (!this.node.nextSibling) {
this.node = findParentNode(this.node).nextSibling
}
else
{
if (this.node.nextSibling) {
this.node = findNode(this.node.nextSibling)
}
}
相关文章:
- 如何通过Primefaces3.5使用JSF2.0验证并在成功的情况下打开一个新的选项卡
- 有没有任何情况下,一个方法不应该是原型方法
- 我可以在不使用Javascript的情况下建立一个坚实的网站吗
- 默认情况下,一个模型属性等于 sail.js 模型中的另一个模型属性
- JavaScript - 是否可以在不使用OR的情况下在一个条件下检查多个工作日
- 如何在没有安全警告的情况下将一个 html 加载到另一个 html 中
- 角度 UI 路由器 - 在没有参数的情况下从一个状态转换到同一状态失败
- 是否可以在没有app.js的情况下创建一个extjs应用程序的js文件(如构建版本)
- 如何让WebAPI在不使用C#属性的情况下接受一个复杂对象作为DELETE HTTP谓词的参数
- 有没有可能在没有面向对象编程的情况下创建一个基本的汽车游戏
- 如何在不更新另一个的情况下更新一个Javascript对象数组
- 如何在不重复的情况下将一个范围中定义的函数添加到另一个范围
- 为什么在没有新操作符的情况下创建一个新实例
- 如何使第一个单选按钮在默认情况下选择一个列表中建立的for in循环使用trick
- 如何在不使用Object.defineProperty的情况下定义一个非枚举方法
- 默认情况下返回一个属性值
- 在不影响另一个页面的情况下更改一个页面的变量
- 如何在没有jquery的情况下在一个页面上切换表单
- 如何在不触发compute的情况下更新一个可观察对象
- 尝试在给定2个数组+映射的情况下创建一个对象数组