我有一个数组数组:
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])
我的输入始终为[[ // Elements], [ // Elements]]
。我的方法并不清楚。
答案 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>