【发布时间】:2018-10-02 22:09:05
【问题描述】:
我有一个函数可以检查是否在数组中找到了一个值。我想返回一个真或假。当前代码有效,但抛出 js-standerd/es-lint 错误“在条件表达式中不必要地使用布尔文字” 我在这里搜索了大量这些错误消息,但似乎无法理解它。对我来说,这就是说'如果找到该值,则返回 true,否则返回 false'
let found = value.find(val => {
return val === item
})
return found ? true : false
我试过了
return value.find(val => {
return val === item
}) || false
有效但不返回布尔值,如果找到,则返回项目。
我知道我可以通过多种方式完成这项工作,但我只是想弄清楚我的代码是坏还是不正确,或者 es-lint 是否有错误地标记它。
【问题讨论】:
-
found已经可以用作布尔值。您通常根本不需要这样做。 -
使用
!!value.find(...)将值转换为布尔类型。但正如乔治所说,使用 some 这样你也可以找到错误的值。 -
使用
.some它返回真或假 -
我已经使用了很多,它在这里工作。我只是喜欢 find 的语法,因为它很容易理解。
-
return found ? true : false可以完全替换为return !!found;
标签: javascript ternary-operator eslint