我找不到类似的问题,我有点卡住了。我有以下 JSON 数组:
[
{
"Name": "element1",
"Attributes": ["1", "2"]
},
{
"Name": "element2",
"Attributes": ["1","3" ]
},
{
"Name": "element3",
"Attributes": []
}
]
我试图在“Attributes”属性中创建一个包含所有唯一元素的数组,但我无法循环遍历每个对象,然后循环遍历数组元素以返回唯一值。我正在尝试使用 filter() 或 map() 来实现。
编辑:我想要一组独特的元素,所以:[1,2,3]。
最佳答案
您可以使用几个 Array 方法来完成。例如:
var result = [
{
"Name": "element1",
"Attributes": ["1", "2"]
},
{
"Name": "element2",
"Attributes": ["1","3" ]
},
{
"Name": "element3",
"Attributes": []
}
]
// map to [ ["1", "2"], ["1", "3"], [] ]
.map(item => item.Attributes)
// flatten to [ "1", "2", "1", "3" ]
.reduce((prev, curr) => prev.concat(curr), [])
// filter unique [ "1", "2", "3" ]
.filter((item, i, arr) => arr.indexOf(item) === i)
console.log(result)
关于javascript - 从对象数组中的数组返回唯一的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38158675/