Как предотвратить создание вложенных объектов на карте lodash? - PullRequest
0 голосов
/ 02 мая 2019

Я хочу отобразить массив объектов и добавить свойство для каждого элемента.На данный момент исходные значения вложены.Как я могу изменить его, чтобы получить элемент со сплющенным объектом?

пример кода

import _ from 'lodash';

let arr = [{name: "tim"}, {name: "tom"}]
const id = {id: 1}

console.dir(_.map(arr, item => ({...id, item}))); 

результат:

[ { id: 1, item: { name: 'tim' } },
  { id: 1, item: { name: 'tom' } } ]

желаемый результат:

[ { id: 1,  name: 'tim'  },
  { id: 1,  name: 'tom' } ]

1 Ответ

1 голос
/ 02 мая 2019

Распространение item, а также:

let arr = [{name: "tim"}, {name: "tom"}]
const id = {id: 1}

console.dir(_.map(arr, item => ({ ...id, ...item })));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>

Или используйте _.merge() с lodash / fp:

const mergeId = id => _.map(_.merge(id))

let arr = [{name: "tim"}, {name: "tom"}]
const id = {id: 1}

result = mergeId(id)(arr)

console.dir(result);
<script src='https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)'></script>
...