【发布时间】:2020-09-28 00:24:53
【问题描述】:
我有两个对象数组,我想将它们组合成一个新数组,根据previewNumber 值作为.splice 中使用的索引,将每个对象从一个数组拼接到另一个数组。我用过.map,但它只循环arrayOne的长度,下面是一些示例代码,任何帮助将不胜感激
const arrayOne = [
{
"title": "A Project",
"slug": "a-project",
"previewNumber": 2,
},
{
"title": "New Project",
"slug": "new-project",
"previewNumber": 4,
}
]
const arrayTwo = [
{
"title": "Project 5546",
"slug": "project-5546",
},
{
"title": "Project 456",
"slug": "project-456",
},
{
"title": "Rand Project 467",
"slug": "rand-project-467",
},
{
"title": "Random Project 245",
"slug": "random-project-245",
},
{
"title": "Example Project",
"slug": "example-project",
},
]
const newArray = arrayOne.map((item) =>
arrayTwo.splice(item.previewNumber, 0, item)
);
console.log(newArray)
const desiredOutput = [
{
"title": "Project 5546",
"slug": "project-5546",
},
{
"title": "Project 456",
"slug": "project-456",
},
{
"title": "A Project",
"slug": "a-project",
"previewNumber": 2,
},
{
"title": "Rand Project 467",
"slug": "rand-project-467",
},
{
"title": "Random Project 245",
"slug": "random-project-245",
},
{
"title": "New Project",
"slug": "new-project",
"previewNumber": 4,
},
{
"title": "Example Project",
"slug": "example-project",
},
]
【问题讨论】:
-
只要
const mergedArr = [...arrayOne, ...arrayTwo]。从所需的输出中,我了解到您正在寻找合并两个数组。 -
我意识到我错过了一个关键细节,我想使用
previewNumber值将arrayOne中的对象拼接到arrayTwo顺序中,但创建一个新数组而不是改变arrayTwo -
arrayOne是否按previewNumber排序? -
@LLawliet 不,我想在与
arrayTwo结合时使用previewNumber的值作为新数组中的索引。
标签: javascript