代码之家  ›  专栏  ›  技术社区  ›  KyleMit Steven Vachon

有没有一个相当于数组。无“在JS中

  •  0
  • KyleMit Steven Vachon  · 技术社区  · 4 年前

    Is there an equivalent of None() in LINQ?

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

    一种可能的解决方法是 .filter .length 确保为零:

    let arr = ["a","b","c"]
    // make sure that no item in array = "b"
    let noBs = arr.filter(el => el === "b").length === 0
    
    1 回复  |  直到 4 年前
        1
  •  10
  •   KyleMit Steven Vachon    4 年前

    正如linq例子逻辑上得出的结论

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

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

    然后像这样打电话:

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

    extend 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")
    
        2
  •  2
  •   Max Carroll    4 年前

    目前我正在使用 Array.some()

    我个人认为数组。无功能会很棒的

    你可以的 request

        3
  •  0
  •   Siva Kondapi Venkata    4 年前

    喜欢@KyledMit方法。在类似的行上,使用 findIndex 是另一种方式。( find 可能不可靠,因为我们无法检查返回值)。

    const arr = ["a","b","c"]
    
    const noBs = arr.findIndex(el => el === "b") < 0;
    
    console.log(noBs)