2017-02-21 4 views
1

を選ぶlodashマップや配列を指定して

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'])} ???に何を入れるべきですか?

+0

https://lodash.com/docs#map、https://lodash.com/docs#pick –

答えて

3

マップに関数を渡す必要があり、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>

0

あなたがバベル(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));
を解決するために解体を使用することができ、あなたもしたくない場合はlodash使用する必要はありません。

-1
_.chain(test).map(function(e){return _.pick(e, ['b','c'])}).value(); 
0

質問には関係ありませんが、これはES6で簡単に行うことができます。

test.map(({ b, c }) => { 
    return { b, c } 
}); 
関連する問題