JS中是否有等价于“Array.None”的东西?

新手上路,请多包涵

LINQ 有一个类似的问题:LINQ 中是否有等同于 None() 的问题?

集合/数组有一些布尔方法:

我可以检查数组中是否没有元素与给定的函数回调匹配吗

一个可能的解决方法是 .filter 然后检查 .length 并确保它为零:

 let arr = ["a","b","c"]
// make sure that no item in array = "b"
let noBs = arr.filter(el => el === "b").length === 0

原文由 KyleMit 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 423
2 个回答

正如 linq 示例所逻辑得出的结论

None!Any 相同,因此您可以定义自己的扩展方法,如下所示:

 let none = (arr, callback) => !arr.some(callback)

然后这样调用:

 let arr = ["a","b","c"]
let noBs = none(arr, el => el === "b")


或者 如果你想 扩展 Array.proto ,你可以添加以下方法:

 Object.defineProperty(Array.prototype, 'none', {
    value: function (callback) { return !this.some(callback) }
});

然后这样调用:

 let arr = ["a","b","c"]
let noBs = arr.none(el => el === "b")

原文由 KyleMit 发布,翻译遵循 CC BY-SA 4.0 许可协议

现在不行

目前我正在使用 Array.some() 然后否定整个事情

我个人认为 Array.none 函数会很棒

您可以 请求 将其添加到 ECMA 的下一个版本中。至少可以说这看起来有点像一个过程,但如果我们想把它添加到 ECMA 中,这就是方法。

原文由 Max Carroll 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏