首页 > 解决方案 > 如何使用 lodash 使用具有布尔值的另一个数组对数组进行子集化

问题描述

我在文档中找不到,是否有一种内置的简单方法可以使用布尔数组对数组进行子集进行过滤?在 lodash 或 es6 中

我曾经经常使用这个功能R,它似乎非常有用。最近我遇到了几个用例,当我可以使用类似的东西但无法确定它是否支持开箱即用。

就像是

subset([1, 2, 3, 4, 5], [true, false, false, false, true]) // => [1, 5]

标签: javascriptlodash

解决方案


一个快速的方法是这样的

const f = (as, bs) => as.filter((_, i) => bs[i])
f([1, 2, 3, 4, 5], [true, false, false, false, true])  // => [1, 5]

这假设两个数组具有相同的长度,这可能是也可能不是您想要的。


推荐阅读