如何使用lodash同时迭代两个数组

时间:2019-01-31 15:34:22

标签: lodash

我有

A = [1,2,3,4,5,6,7]
B = [3,5,9]
I want to get an array C containing the last elements < than elements in B, like
C = [2,4,7], by using Lodash

我尝试过

C=_.map(A, a = (v) -> v == _.findLast(A, b = (v) -> v < _.forEach(B, c = (v) -> v==v)))

这不起作用。上面我用coffeescript代替了javascript,但是请回答任何一个,我想要一个使用lodash的解决方案,而无需显式循环B元素,谢谢。

2 个答案:

答案 0 :(得分:0)

forEach是多余的,并且仅返回原始集合:

const A = [1,2,3,4,5,6,7]
const B = [3,5,9]

// C = [2,4,7], by using Lodash

const result = _.map(B, n => _.findLast(A, m => m < n));

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

答案 1 :(得分:0)

我知道您说过您想要lodash的灵魂,但以防万一您好奇的是使用香草ES6获得所需阵列的一种方法:

const A = [1, 2, 3, 4, 5, 6, 7];
const B = [3, 5, 9];
const C = findEls(A, B);

function findEls(A, B) {
  const copy = [...A].reverse(); //Copy since reverse is an in-place operation
  return B.map(b => {
    return copy.find(a => a < b);
  });
}

console.log(C);