Lodash объединить количество массивов

1

Я хочу объединить n массивов в один.

например

// Array1 

[{name:'abc', age:34},{name:'xyz', age:44},{name:'fng', age:54}]

// Array 2

[{name:'dgc', age:54}]

// Required output 

[{name:'abc', age:34},{name:'xyz', age:44},{name:'fng', age:54},{name:'dgc', age:54}]

Я пробовал много других подобных вопросов, но ничего не работало для меня. пожалуйста, помогите мне с примером.

Показать ещё 1 комментарий
Теги:
lodash

2 ответа

1

Учитывая, что вы хотите объединить n массивов, вы можете использовать массив с этими массивами и использовать concat и reduce чтобы объединить их:

var array1 = [{name:'abc', age:34},{name:'xyz', age:44},{name:'fng', age:54}];
var array2 = [{name:'dgc', age:54}];

var arrays = [array1, array2];

var merged = arrays.reduce((acc, next) => acc.concat(next));
console.log(merged);
0

Вы можете использовать concat и распространение синтаксиса ES6.

var arr1 = [{name:'abc', age:34},{name:'xyz', age:44},{name:'fng', age:54}]
var arr2 = [{name:'dgc', age:54}]

var r = [].concat(...arr1, ...arr2);
console.log(r)

Или вы можете создать функцию, которая принимает любое количество массивов и возвращает новый массив.

var arr1 = [{name:'abc', age:34},{name:'xyz', age:44},{name:'fng', age:54}]
var arr2 = [{name:'dgc', age:54}]

let merge = (...arr) => [].concat(...arr);
console.log(merge(arr1, arr2))
  • 0
    я не из массивов ... это может быть 3 или 5 или 100
  • 0
    только для примера я дал 2
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню