我有一个数组categories
,其中包含我试图与我的数组articles
匹配的值id
.
如果articles
中有一个与categories
之一的匹配id,我想将它们合并成一个数组。我能够将这些对象添加到数组中,但它们不是基于id进行匹配的。
以下是categories的示例:
const categories = [{results:
{
"id": 28,
"name": "Articles"
}, {
"id": 76,
"name": "Projects"
}
}]
这里是一篇文章的示例:
const articles = [
{
"title": "first article",
"content": "lorem ipsum",
"categoryId": 28
},
{
"title": "second article",
"content": "lorem ipsum",
"categoryId": 28
},
{
"title": "thirdarticle",
"content": "lorem ipsum",
"categoryId": 76
},
]
我试图将这两个数组合并成一个。如果可能的话,我希望
articles
数组是匹配索引的数组。例如: const combined = [
{
"id": 28,
"name": "Articles",
"articles:: [
{ "title": "first article", "content": "lorem ipsum", "categoryId": 28 },
{ "title": "second article", "content": "lorem ipsum", "categoryId": 28 },
],
},
];
我试图通过对类别进行映射并使用 Object.assign
来实现这一点。输出结果似乎是将数组组合在一起,但我认为它们都被组合在一起而不是匹配id。
我该如何实现这个?
const articles = [
{
"title": "first article",
"content": "lorem ipsum",
"categoryId": 28
},
{
"title": "second article",
"content": "lorem ipsum",
"categoryId": 28
},
{
"title": "thirdarticle",
"content": "lorem ipsum",
"categoryId": 76
},
]
const categories = {results: [{ "id": 28, "name": "Articles"}, {"id": 76, "name": "Projects"}]}
let combined = categories.results.map((item, i ) => Object.assign(item, articles));
console.log(combined)
find()
方法查找具有给定属性值的对象。 - Barmarcategories
示例并不是有效的 JavaScript。它应该是一个包含数组的对象,但实际上它是一个包含无效对象的数组。 - Barmar