LoDash:如何使用_.flow从两个数组中删除空值和空值索引?

时间:2018-02-10 10:45:58

标签: javascript arrays lodash

问题

我有一个数组数组:

const multiple = [[1, 2, null, 7], [6, 8, 9, 1]]

现在我想从另一个数组中删除所有空值和相应的元素,结果是:

[[1, 2, 7], [6, 8, 1]]

我能够做到这一点,但我正在寻找_.flow的解决方案。

方法

这是我的方法,它不会返回数组数组,也不会从其他数组中删除该元素。

_.flow([
      xorWith(_.isNull)
])([1, 2, null, 7], [6, 8, 9, 1])

1。更新

我的输入始终为[[ // Elements], [ // Elements]]。我的方法并不清楚。

2 个答案:

答案 0 :(得分:1)

const multiple = [[1, 2, null, 7], [6, 8, 9, 1]];
const withoutNulls = (arr) => _.every(arr, _.negate(_.isNull));

const result = _.flow(
  _.zip,
  (tuples) => _.filter(tuples, withoutNulls),
  _.unzip 
)(...multiple)

console.log(result);
<script src="https://unpkg.com/lodash@4.17.5/lodash.js"></script>

答案 1 :(得分:0)

这是否符合您的需求,或者您希望它与您的功能设置完全一致? 我无法得到你的基本想法,因为flow函数接受函数并在链中调用它们,但它不像你的情况那样。

_.flow((...args) => _.map(args, arr => _.filter(arr, v => !_.isNull(v))), console.log)([1, 2, null, 7], [6, 8, 9, 1])
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.5/lodash.min.js"></script>