我有下面的json,从中读取数据:
[
{
"id": 1,
"brand":"Mike",
"cycle": "C1",
"sides": {
"1": {"sideName":"A",
"active": false},
"2": {"sideName":"B",
"active": false},
"3": {"sideName":"C",
"active": true}
}
},
{
"id": 2,
"brand":"Luis",
"cycle": "C2",
"sides": {
"1": {"sideName":"A",
"active": false},
"2": {"sideName":"B",
"active": false},
"3": {"sideName":"C",
"active": true},
"4": {"sideName":"D",
"active": true}
}
},
{
"id": 3,
"brand":"Lucas",
"cycle": "Z1",
"sides": {
"1": {"sideName":"H",
"active": false},
"2": {"sideName":"U",
"active": false},
"3": {"sideName":"L",
"active": true},
"4": {"sideName":"A",
"active": true}
}
},
{
"id": 4,
"brand":"Edd",
"cycle": "R1",
"sides": {
"1": {"sideName":"A",
"active": false},
"2": {"sideName":"B",
"active": false},
"3": {"sideName":"C",
"active": true},
"4": {"sideName":"Q",
"active": true}
}
}
]
字符串
我需要保留一个数组,其中包含所有常见的'sidenames',而不重复它们。我使用react jsx,但纯js解决方案对我来说也是可行的。示例:
结果= [“A”、“B”、“C”、“D”、“H”、“U”、“L”、“Q”]
4条答案
按热度按时间s1ag04yj1#
使用
Set
。set是唯一项的集合:字符串
qrjkbowd2#
一种选择是首先将列表缩减为您需要的项目,然后将它们
flatMap
为一个扁平数组。items.flatMap(item => Object.values(item.sides).map(side => side.sideName))
的这将给你一个给予 all
sideNames
的扁平列表,包括重复的。Set
数据结构是一种只允许唯一项的数据结构,因此将所有这些项添加到一个集合中,然后将它们转换回数组将为您进行重复数据删除。这可能看起来像:
字符串
bnl4lu3b3#
字符串
brtdzjyr4#
将对象区分为它们的
sideName
后,可以使用new Set创建一个新数组。它设置的目的是创建没有重复值的数组。字符串
输出:
型