是否有可能使用ES6数组方法链Lodash数组方法



我想链接lodash数组方法与ES6数组方法互换,而无需使用_chain和功能编程样式。

我想这样做:

import {flatMap} from 'lodash';
const result = my2DimensionalArray.flatmap().map(i => {
 return `${i}-blergh`;
});

我没有扩展本机数组Protoytpe。

我目前这样工作:

import _ from 'lodash';
_(my2DimensionalArray).flatMap().value().map(i => {
  return `${i}-blergh`;
});

我可以以某种方式改进吗?其他人怎么做同样的事情?

因为 _.flatMap()返回数组,您可以使用JS映射:

const arr = [[1, 3, 5, 7], [9, 11, 13, 15]];
const result = _.flatMap(arr) // returns an array
  .map(i => `${i}-blergh`); // JS map
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.2/lodash.min.js"></script>

如果您使用的是Lodash的链条,请通过将_.value()移至链的末端来使用Lodash的_.map()

const arr = [[1, 3, 5, 7], [9, 11, 13, 15]];
const result = _(arr) // start a chain
  .flatMap()
  .map(i => `${i}-blergh`) // lodash's map
  .value(); // end the chain
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.2/lodash.min.js"></script>

注意:数组方法 - 映射,过滤器,降低,降低,降低,foreach,每一个,有些是ES5的一部分,而不是ES6。

最新更新