【发布时间】:2019-05-23 12:21:24
【问题描述】:
我正在尝试提取数组中每个对象的键,然后我将收集所有键,然后连接小块键数组。然后我使用 set 消除重复并获取所有键。
我能够得到结果。有没有更好的方法来解决这个问题
任何帮助表示赞赏
let data = [
{
"test1": "123",
"test2": "12345",
"test3": "123456"
},
{
"test1": "123",
"test2": "12345",
"test3": "123456"
},
{
"test1": "123",
"test2": "12345",
"test3": "123456"
},
{
"test1": "123",
"test2": "12345",
"test3": "123456"
},
{
"test1": "123",
"test2": "12345",
"test3": "123456"
},
]
let keysCollection = []
data.forEach(d => {
let keys = Object.keys(d);
keysCollection.push(keys)
})
let mergingKeysCollection = keysCollection.reduce((a,b) => [...a, ...b], [])
let uniqueKeys = new Set(mergingKeysCollection)
console.log('uniqueKeys', uniqueKeys)
【问题讨论】:
-
你所做的实际上是有效的,只是集合没有字符串化..所以让你的工作只是做 ->
let uniqueKeys = Array.from(new Set(mergingKeysCollection))甚至let uniqueKeys = [...new Set(mergingKeysCollection))] -
@Keith 或
console.log('uniqueKeys', Array.from(uniqueKeys))
标签: javascript arrays