【发布时间】:2021-04-14 09:26:53
【问题描述】:
我的 JSON array of objects 具有以下结构:
obj: [
{
itemTitle: 'title-a',
itemTags: [
{ tag: 'tag-a' },
{ tag: 'tag-b' }
]
},
{
itemTitle: 'title-b',
itemTags: [
{ tag: 'tag-c' }
]
},
{
itemTitle: 'title-c',
itemTags: [
{ tag: 'tag-c' },
{ tag: 'tag-b' }
]
}
]
我需要在这样的数组中提取不同的标签值[tag-a, tag-b, tag-c]
我会尝试这种方法:
const tagsArray = obj.map(elem => elem.itemTags);
var tags = [];
for (var i = 0; i < tagsArray.length; i++) {
tags.push(tagsArray[i].map(item => item.tag))
}
//tagsArray[0]: [{"tag":"tag-a"},{"tag":"tag-b"}]
//tagsArray[1]: [{"tag":"tag-c"}]
//tagsArray[2]: [{"tag":"tag-c"},{"tag":"tag-b"}]
//tags: tag-a,tag-b,tag-c,tag-c,tag-b
const unique = [...new Set(tags)];
//unique: tag-a,tag-b,tag-c,tag-c,tag-b
它不返回不同的值
【问题讨论】:
-
“我有 json 对象数组...” - 不,
obj(该内容的名称很糟糕)是一个对象数组。跨度> -
Array.prototype.flatMap() -
@Andreas 非常感谢。
标签: javascript arrays unique