У меня есть ниже двух массивов:создать сгруппированный массив с использованием двух различных массивов
array1 = [{
"type":"test",
"name":"name1"},
{
"type":"dev",
"name":"name2"}]
array2=[{
"type":"test",
"name":"name3"},
{
"type":"dev",
"name":"name4"},
{
"type":"prod",
"name":"name5"}]
Я хочу, чтобы сгруппировать два массива с «типа» и создать новый массив что-то вроде этого:
finalArray=[{
"type":"test",
"info":[{
"type":"test",
"name":"name1"}],
[{
"type":"test",
"name":"name3"
}]},
{
"type":"dev",
"info":[{
"type":"dev",
"name":"name2"}],
[{
"type":"dev",
"name":"name4"}]},
{
"type":"prod",
"info":[],
[{
"type":"prod",
"name":"name5"}]
}]
Есть ли в любом случае, что я могу достичь этого, используя javascript, angularjs2, lodash, jquery. Я могу сгруппировать и создать новый объект, как указано в: using lodash .groupBy. how to add your own keys for grouped output?
Но только я всегда хочу, чтобы данные из второго массива были в индексе = 1 из «info», а сначала в индекс = 0. Если какой-либо из массива не имеет «типа», тогда массив «info» должен иметь пустые/нулевые значения.
Что касается вашего вопроса - "типа": "прод" является дзю st во втором массиве (array2), остальные типы находятся в обоих массивах - таким образом, в конечном массиве «информация» будет удерживаться ключ - один пустой массив (тип отсутствует в массиве 1) и один с ключами/значениями из array2 (если я правильно понимаю) :) – sinisake
обновленная база на ваши объяснения. теперь ясно. – Chybie
@Chybie - Спасибо за решение, которого я ожидаю. У меня есть еще одна проблема: как я могу динамически передавать «тип» в .map (x => x.type). Потому что я сохранил это в общем методе, чтобы я мог группировать разные ключи, передавая имя ключа в качестве параметра. – user3878988