#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:
Это просто с функцией отображения массива
-
следите за индексом, вы будете использовать его, чтобы узнать индекс элемента, чтобы вы могли выбрать соответствующий ему элемент в другом массиве, как показано ниже
const mergedArray = allPictures.map((url,index) => {
return { url : url, description : description[index] } })