ES6:如何解散内部数组并展平JSON数组? [英] ES6: How do I unravel inner arrays and flatten the JSON array?
本文介绍了ES6:如何解散内部数组并展平JSON数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
想象一下,我有以下JSON数组:
Imagine that I have the following JSON array:
[
{
"team": "Colts",
"players": [
{
"name": "Andrew Luck",
"position": "quarterback"
},
{
"name": "Quenton Nelson",
"position": "guard"
}
]
},
{
"team": "Patriots",
"players": [
{
"name": "Tom Brady",
"position": "quarterback"
},
{
"name": "Shaq Mason",
"position": "guard"
}
]
}
]
我想将JSON转换为以下形式:
And I want to transform and flatten the JSON to be the following:
[
{
"name": "Andrew Luck",
"position": "quarterback",
"team": "Colts"
},
{
"name": "Quenton Nelson",
"position": "guard",
"team": "Colts"
},
{
"name": "Tom Brady",
"position": "quarterback",
"team": "Patriots"
},
{
"name": "Shaq Mason",
"position": "guard",
"team": "Patriots"
}
]
我该如何使用ES6或lodash语法做到这一点?
How would I do this with either ES6 or lodash syntax?
推荐答案
使用 Array#map
方法.
Use Array#reduce
method along with Array#map
method.
let res = data.reduce((arr, { team, players }) => arr.concat(players.map( obj => ({...obj, team }))), []);
// or
let res = data.reduce((arr, { team, players }) => [...arr, ...players.map( obj => ({...obj, team }))], []);
// or
let res = data.reduce((arr, { team, players }) => (arr.push(...players.map( obj => ({...obj, team }))),arr), []);
var data = [{
"team": "Colts",
"players": [{
"name": "Andrew Luck",
"position": "quarterback"
},
{
"name": "Quenton Nelson",
"position": "guard"
}
]
},
{
"team": "Patriots",
"players": [{
"name": "Tom Brady",
"position": "quarterback"
},
{
"name": "Shaq Mason",
"position": "guard"
}
]
}
]
let res = data.reduce((arr, {
team,
players
}) => arr.concat(players.map(obj => ({ ...obj,
team
}))), []);
// or
let res1 = data.reduce((arr, {
team,
players
}) => [...arr, ...players.map(obj => ({ ...obj,
team
}))], []);
// or
let res2 = data.reduce((arr, {
team,
players
}) => (arr.push(...players.map(obj => ({ ...obj,
team
}))), arr), []);
console.log(res, res1, res2)
这篇关于ES6:如何解散内部数组并展平JSON数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文