Как объединить несколько массивов JSON в один массив быстрого массива в Javascript? - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть два массива json:

     1) 
    [
      {
       "userId": 9
      },
      {
       "userId": 14
      }
     ]

     2) 
     [{"role": "1", "group": "3"}, {"role": "1", "group": "2"}] 

Я хотел бы объединить два массива следующим образом: возможно ли получить решение с помощью javascript?

    [
     {"userId":9,"role":"1","group":"2"},
     {"userId":14,"role":"1","group":"2"}
     {"userId":9,"role":"1","group":"3"},
     {"userId":14,"role":"1","group":"3"}
    ] 

Я пыталсяиспользовать пусть однако я не смог найти способ манипулировать переключением подмассива:

     let arr1 = 
     [{ "userId": 9 }, { "userId": 14 }]
     let arr2 = [{"role": "1","group": "3"}, {"role": "1","group": "2" }] 

     let result = arr1.map(o => Object.assign(o, ...arr2));

     console.log(result);
    return result;

Результат примерно такой:

    [{"userId":9,"role":"1","group":"2"},{"userId":14,"role":"1","group":"2"}] 

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

@ У Мухаммеда Усмана есть лучший ответ, но проще понять, как создать новый объект с желаемыми значениями и вставить его в результирующий массив.Что-то вроде следующего:

users = [
    {"userId": 9},
    {"userId": 14}
];

data = [
    {"rid": 1},
    {"mid": 201}
];
result = [];

for (var i = 0; i < users.length; i++) {
    result.push({
        "rid": data[0].rid,
        "mid": data[1].mid,
        "userId": users[i].userId
    });
}

Здесь result будет иметь желаемый результат.

0 голосов
/ 25 сентября 2018

Вы можете использовать .map() с Object.assign():

let arr1 = [{"userId": 9}, {"userId": 14}],
    arr2 = [{"rid": 1}, {"mid": 201}];
     
let result = arr1.map(o => Object.assign(o, ...arr2));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...