如何将两个数组合二为一? JS

时间:2020-11-01 17:41:06

标签: javascript loops

我需要连接两个数组。 第一个数组是描述数组

4 个答案:

答案 0 :(得分:3)

假设数组的长度总是相等的...您可以使用传递给回调函数的第二个参数(每个元素的索引)访问另一个数组的元素。

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 && url) {
    acc.push({ description, url });
  }
  return acc;
}, [])

console.log(result);

答案 1 :(得分:0)

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)

答案 2 :(得分:0)

您可以为循环使用标准

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)

答案 3 :(得分:0)

使用数组的map函数很简单

  1. 保持跟踪索引,您将使用它来了解元素的索引,以便可以在另一个数组上选择其对应元素 如下

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

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