Kyl*_*Mit 5 javascript linq arrays ecmascript-6
LINQ 有一个类似的问题:在 LINQ 中是否有等价物None()?
集合/数组有一些布尔方法:
Array.some(类似于linq.Any)Array.every(类似于linq.All)我可以检查数组中是否没有元素与给定的函数回调匹配
一个可能的解决方法是.filter然后检查.length并确保它为零:
let arr = ["a","b","c"]
// make sure that no item in array = "b"
let noBs = arr.filter(el => el === "b").length === 0
Run Code Online (Sandbox Code Playgroud)
Kyl*_*Mit 20
正如 linq 示例在逻辑上得出的结论
None与 相同!Any,因此您可以按如下方式定义自己的扩展方法:
let none = (arr, callback) => !arr.some(callback)
Run Code Online (Sandbox Code Playgroud)
然后像这样调用:
let arr = ["a","b","c"]
let noBs = none(arr, el => el === "b")
Run Code Online (Sandbox Code Playgroud)
或者,如果您想像这样扩展Array.proto:
Object.defineProperty(Array.prototype, 'none', {
value: function (callback) { return !this.some(callback) }
});
Run Code Online (Sandbox Code Playgroud)
然后像这样调用:
let arr = ["a","b","c"]
let noBs = arr.none(el => el === "b")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5595 次 |
| 最近记录: |