javascript - 如何使这个大的 if 语句在 JavaScript 中更具可读性

标签 javascript

我需要使以下大型 if 语句在 JavaScript 中更具可读性。

有什么想法吗?

if ( Tools.Array.contains( that.pAutocompleteAliasUsed[i], this.currentString) !== false  &&
    ( this.autocomplete.list.length === 0 ) || ( this.currentString.toLowerCase() !== this.autocomplete.list[0].target.alias.toLowerCase() ) )
{
    make something
}

最佳答案

为了提高可读性,您可以做的一件事是从 if 语句中提取各种逻辑测试。阅读单个语句然后在 if 测试中很好地命名 bool 参数要容易得多。

我已经为这个例子中的第一个测试做了这个,我和其他人一起尝试过,但是你可以给他们起比我更好的名字,因为你知道他们在测试什么。

var toolsContainsString = Tools.Array.contains(that.pAutocompleteAliasUsed[i], this.currentString) !== false;
var isAutoCompleteEmpty = this.autocomplete.list.length === 0;
var isTargetMatch = this.currentString.toLowerCase() !== this.autocomplete.list[0].target.alias.toLowerCase();

if (toolsContainsString && (isAutoCompleteEmpty || isTargetMatch)) {
    //make something
}

关于javascript - 如何使这个大的 if 语句在 JavaScript 中更具可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325182/

相关文章:

javascript - 在 map 上选择一个点并将其显示在输入上

javascript - 将react-native从 0.68 升级到 0.69 时,出现此错误

javascript - 我应该使用表单将 JSON 数据提交给 REST api

javascript - 无法检测到 jQuery 单击 vimeo iframe

javascript - 如何在React中的功能组件中制作与componentDidUpdate函数类似的函数?

javascript - jquery去除循环动画

javascript - 从 Json 文件加载 Enum 值数组

javascript - Angular JS : show text box relatively based on click on radio button and change background color of div

javascript - 在 Javascript 中获取元素的转换类属性

javascript - 使用 Websocket 的 D3 的 OnClick() 处理程序