Как объединить два массива в один с этими данными? JS

#javascript #loops

#javascript #циклы

Вопрос:

Мне нужно объединить два массива. Первый массив — это массив описаний

Ответ №1:

Предполагая, что массивы всегда имеют одинаковую длину… вы можете использовать второй аргумент, переданный функции обратного вызова (который является индексом каждого элемента) для доступа к элементам другого массива.

 const description = ['One', 'Two', 'Three'];

const allPictures = ['url-1', 'url-2', 'url-3'];

const result = description.map((des, index) => ({
  url: allPictures[index],
  description: des
}));

console.log(result);  

Если вы не хотите создавать объект, когда любой из массивов имеет ложные значения:

 const descriptions = ['One', '', 'Three', undefined];

const allPictures = ['url-1', 'url-2', null, ''];

const result = descriptions.reduce((acc,description, index) => {
  const url = allPictures[index];
  if(description amp;amp; url) {
    acc.push({ description, url });
  }
  return acc;
}, [])

console.log(result);  

Комментарии:

1. Хорошо, но как удалить объект-объект, если значение равно «» или null ?

2. Я хочу передать только объект со значениями

3. @wamovec Итак, содержит ли ваш массив ложные значения? Обновите свой вопрос.

4. @wamovec обновил мой ответ… возможно, это то, о чем вы просите.

Ответ №2:

 Make sure both arrays are equal in size.
  

 const description = ['One', 'Two', 'Three'];
const allPictures = ['url-1', 'url-2', 'url-3'];

const imageObject = description.map((item, index) => {
  return {
    url: item,
    description: allPictures[index]
  }
})


console.log('imageObject', imageObject)  

Ответ №3:

Вы можете использовать стандартный цикл for

 const allPictures = ['url-1', 'url-2', 'url-3'];
const description = ['One', 'Two', 'Three'];

const result = [];
for (let i = 0; i < allPictures.length; i  ) {
  result.push({
    url: allPictures[i],
    description: description[i]
  });
}
console.log(result)  

Ответ №4:

Это просто с функцией отображения массива

  1. следите за индексом, вы будете использовать его, чтобы узнать индекс элемента, чтобы вы могли выбрать соответствующий ему элемент в другом массиве, как показано ниже

    const mergedArray = allPictures.map((url,index) => {

          return { url : url,
              description : description[index]
            }
      })