lodash地图和选择

Sea*_*ean 6 javascript underscore.js lodash

给出一个数组

var test = [{a:1, b:2, c:3}, {a:4, b:5, c:6}, {a:7, b:8, c:9}]
Run Code Online (Sandbox Code Playgroud)

如何获得像[{b:2, c:3}, {b:5, c:6}, {b:8, c:9}]lodash 一样的新对象数组?

我试过了_.map(test, _pick(???, ['b', 'c'])} 我应该放???什么?

Nen*_*car 8

你需要将功能传递给地图,并且使用ES6你可以使用这样的箭头功能.

var test = [{a:1, b:2, c:3}, {a:4, b:5, c:6}, {a:7, b:8, c:9}]

var result = _.map(test, e => _.pick(e, ['b', 'c']))
console.log(result)
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)


rab*_*rab 5

这与问题无关,这可以通过ES6轻松完成.

test.map(({ b, c }) => { 
  return { b, c }
});
Run Code Online (Sandbox Code Playgroud)

  • 甚至更短(在简单的情况下):`test.map(({b,c})=>({b,c});` (3认同)