Как создать массив объектов из двух разных массивов?

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

 const array1 = [7665,7666]
 const array2 = [
{
    "id": 1,
    "name": "user-1",
},
{
    "id": 2,
    "name": "user-2", 
},
{
    "id": 3,
    "name": "user-3",
},
  ]

 const finalArray = [
    {
      7665: [],
      7666: [],
      users: 'user-1',
    },
    {
      7665: [],
      7666: [],
      users: 'user-2',
    },
    {
      7665: [],
      7666: [],
      users: 'user-3',
    }
  ]

Пожалуйста, покажите нам код, который вы использовали в качестве минимального воспроизводимого примера?

evolutionxbox 04.07.2023 15:01

Я не очень понимаю этот вопрос - вы хотите объединить оба массива? Добавьте некоторое объяснение в свой вопрос, а также в свой код и свои исследовательские усилия по решению проблемы.

Lightning McQueen 04.07.2023 15:04

@LightningMcQueen: Да, я хотел их объединить. один из ответов решает мою проблему

Elham Bagheri 04.07.2023 15:31

@ElhamBagheri В следующий раз постарайся объяснить свои вопросы.

Lightning McQueen 04.07.2023 15:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
4
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ну вот:

const array1 = [7665, 7666];
const array2 = [{
    "id": 1,
    "name": "user-1",
  },
  {
    "id": 2,
    "name": "user-2",
  },
  {
    "id": 3,
    "name": "user-3",
  },
];

const result = array2.map(({ id, name }) => ({ 
  ...array1.reduce((acc, cur) => ({ 
    ...acc, 
    [cur]: [] 
  }), {}), 
  users: name 
}))

console.info(result)

Карта создает один объект для каждого пользователя из array2. Сокращение преобразует каждое число в массиве1 в ключ конечного пользовательского объекта.

Попробуй это

const array1 = [7665, 7666];
const array2 = [{
    "id": 1,
    "name": "user-1",
  },
  {
    "id": 2,
    "name": "user-2",
  },
  {
    "id": 3,
    "name": "user-3",
  },
];
let finalArray = [];
for (let i = 0; i < array2.length; i++) {
  let obj = {};
  obj[array1[0]] = [];
  obj[array1[1]] = [];
  obj['users'] = array2[i].name;
  finalArray.push(obj);
}
console.info(finalArray);

Объяснение спасает положение, «попробуйте это» на самом деле не помогает новым пользователям, которые читают эти ответы.

Lightning McQueen 04.07.2023 15:11

также почему вы предполагаете, что у array1 есть только 0 и 1 индекс? что, если в array1 больше элементов, чем это?

Chris G 04.07.2023 15:12

Слово «динамический» означает, что массив может иметь любую длину. Вы просто получаете доступ к первому и второму индексу первого массива.

Wimanicesir 04.07.2023 15:13

только потому, что я не так уверен в запросе! Если все в порядке, то все в порядке. Если я не очень хорошо понял запрос, это первый шаг, и я получу ответ, говорящий об этом и дающий мне более подробную информацию...

pier farrugia 04.07.2023 15:13

Другие вопросы по теме