Как выбрать элементы по массиву из массива объекта - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть массив объектов, и я хочу удалить некоторые элементы, подобные этому.

var data = [{a:1, b:2, c:3, d:4}, {a:11, b:22, c:33, d:44}]
var saveByKeys = ['a', 'c']

Результат, который я хочу получить:

var reuslt = [{a:1, c:3}, {a:11, c:33}]

Как использовать lodash для этого? Одной линией будет лучше

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Если вы хотите избежать lodash, вот как это будет выглядеть с ES6:

var data = [{a:1, b:2, c:3, d:4}, {a:11, b:22, c:33, d:44}]
var keys = ['a', 'c']

const pick = (obj, keys) => keys.reduce((r,c) => (r[c] = obj[c], r),{})
console.log(data.map(x => pick(x, keys)))
0 голосов
/ 11 ноября 2018

Вы можете использовать _.pick() Лодаша с Array.map() (или _.map() Лодаша):

const data = [{a:1, b:2, c:3, d:4}, {a:11, b:22, c:33, d:44}]
const saveByKeys = ['a', 'c']

const result = data.map(o => _.pick(o, saveByKeys))

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