как добавить слияния двух массивов объектов в скрипт типа - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть два объекта массива следующим образом. Это должно быть сделано в al oop с использованием машинописи. Оба объекта динамически генерируются из sql API и фильтруются

Массив Объекта 1

customers = [
              {
                id = '1',
                name = 'John',
                engg_id = '6'
              },
              {
                id = '2',
                name = 'Max',
                engg_id = '5'
              },
              {
                id = '3',
                name = 'Rob',
                engg_id = '6'
              },
              {
                id = '4',
                name = 'Rob',
                engg_id = '6'
              }
            ]

Массив Объекта 1

enggNames = [
              {
                engg_name = 'Surya'
              },
              {
                engg_name  = 'Syed'
              },
              {
                engg_name  = 'Surya'
              },
              {
                engg_name  = 'Surya'
              }
            ]

приведенный выше массив объектов для добавления в массив объектов customer, как показано ниже.

Обязательный массив объектов

customers = [
              {
                id = '1',
                name = 'John',
                engg_id = '6'
                engg_name  = 'Surya'
              },
              {
                id = '1',
                name = 'John',
                engg_id = '6'
                engg_name  = 'Syed'
              },
              {
                id = '1',
                name = 'John',
                engg_id = '6'
                engg_name  = 'Surya'
              },
              {
                id = '1',
                name = 'John',
                engg_id = '6'
                engg_name  = 'Surya'
              }
            ]

Ответы [ 3 ]

0 голосов
/ 09 апреля 2020

Вы можете попробовать это.

customers = customers.map( (customer, index) => {
               customer.engg_name = enggNames[index].engg_name;
               return customer;
            });

Надеюсь, это поможет.

0 голосов
/ 09 апреля 2020

Вы можете использовать .map() для перебора ваших данных и использовать Object.assign() для объединения свойств из нескольких объектов.

const arr1 = [
  { id: '1', name: 'John', engg_id: '6' },
  { id: '2', name: 'Max', engg_id: '5' },
  { id: '3', name: 'Rob', engg_id: '6' },
  { id: '4', name: 'Rob', engg_id: '6' }
];

const arr2 = [
  { engg_name: 'Surya' },
  { engg_name: 'Syed' },
  { engg_name: 'Surya' },
  { engg_name: 'Surya' }
];
            
const merge = (a1, a2) => a1.map((o, i) => Object.assign({}, o, a2[i]));

console.log(merge(arr1, arr2));
.as-console-wrapper { max-height: 100% !important; top: 0; }
0 голосов
/ 09 апреля 2020

Итерация двух ваших массивов в одно и то же время и разбрасывание значений в массиве результатов:

const merge = []

for (let i = 0; i < customers.length; i++) {
  merge.push({
    ...customers[i],
    ...enggNames[i]
  })
}

См. Это работает над Stackblitz .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...