javascript - 简化复杂的if语句

标签 javascript backbone.js

以下代码摘自 Backbone.js Events#off()

如何简化 IF 部分使其易于理解?

for (i = list.length - 2; i >= 0; i -= 2) {
    if (!(callback && list[i] !== callback || context && list[i + 1] !== context)) {
        list.splice(i, 2);
    }
}

最佳答案

var noCallback = callback && list[i] !== callback;
var noContext = context && list[i + 1] !== context;
if(! noCallback && ! noContext){...}

或者按照评论中的建议删除否定:

var callbackCheck = !callback || list[i] === callback;
var contextCheck = !context || list[i + 1] === context;
if(callbackCheck && contextCheck ){...}

关于javascript - 简化复杂的if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11818305/

相关文章:

javascript - SVG 封面父级

javascript - 大量回调的 NodeJS 性能

javascript - 如何用 Marionette 将两个 ItemView 包装到同一个 div 中?

javascript - 删除backbone.js View 不允许我添加另一个 View

javascript - 使用 pushState 为 Backbone SPA 配置 node express

javascript - Jquery在div内后拉伸(stretch)?

javascript - 来自 YouTube 视频帧的 WebGL 纹理

javascript - 使用 Typescript 将对象的 JSON 数组转换为字符串数组

backbone.js - jQuery Promise 和 Backbone

backbone.js - 集合中的下划线indexOf