lodash 映射和选择
lodash map and pick
给定一个数组
var test = [{a:1, b:2, c:3}, {a:4, b:5, c:6}, {a:7, b:8, c:9}]
如何使用 lodash 获取像 [{b:2, c:3}, {b:5, c:6}, {b:8, c:9}]
这样的新对象数组?
我试过了_.map(test, _pick(???, ['b', 'c'])}
我应该在 ???
中输入什么?
您需要将函数传递给 map 并且在 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)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>
不想用lodash也可以,如果用babel(es6)可以用解构来解决
var test = [{a:1, b:2, c:3}, {a:4, b:5, c:6}, {a:7, b:8, c:9}]
let newList = test.map(({b, c})=>{
return {b,c}
});
document.body.append(JSON.stringify(newList));
_.chain(test).map(function(e){return _.pick(e, ['b','c'])}).value();
和问的问题无关,用ES6很容易搞定。
test.map(({ b, c }) => {
return { b, c }
});
_.partialRight()
可用于@Sean的试用,如_.map(test, _pick(???, ['b', 'c']))
_.map(test, _.partialRight(_.pick, ['b', 'c']));
// result: [ { b: 2, c: 3 }, { b: 5, c: 6 }, { b: 8, c: 9 } ]
给定一个数组
var test = [{a:1, b:2, c:3}, {a:4, b:5, c:6}, {a:7, b:8, c:9}]
如何使用 lodash 获取像 [{b:2, c:3}, {b:5, c:6}, {b:8, c:9}]
这样的新对象数组?
我试过了_.map(test, _pick(???, ['b', 'c'])}
我应该在 ???
中输入什么?
您需要将函数传递给 map 并且在 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)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>
不想用lodash也可以,如果用babel(es6)可以用解构来解决
var test = [{a:1, b:2, c:3}, {a:4, b:5, c:6}, {a:7, b:8, c:9}]
let newList = test.map(({b, c})=>{
return {b,c}
});
document.body.append(JSON.stringify(newList));
_.chain(test).map(function(e){return _.pick(e, ['b','c'])}).value();
和问的问题无关,用ES6很容易搞定。
test.map(({ b, c }) => {
return { b, c }
});
_.partialRight()
可用于@Sean的试用,如_.map(test, _pick(???, ['b', 'c']))
_.map(test, _.partialRight(_.pick, ['b', 'c']));
// result: [ { b: 2, c: 3 }, { b: 5, c: 6 }, { b: 8, c: 9 } ]