0
我想創建一個輸出數組,它接受來自其子數組的所有參數並創建一個結果數組。 很難用言語解釋,所以我正在用下面的一個例子來解釋。使用子陣列的所有元素創建一個新陣列
var myArr=[
{
"Id":1,
"Name":'Ken',
"Age" : '30',
"Hobbies" : [{'HobbyId':1,'HobbyName':'Swimming'},{'HobbyId':2,'HobbyName':'Reading'}],
"Skills" : [{'SkillId':1,'SkillName':'PHP'},{'SkillId':2,'SkillName':'MySQL'}],
"Language" : [{'LangId':2,'LangName':'English'},{'LangId':3,'LangName':'Chinese'}]
},
{
"Id":2,
"Name":'Mike',
"Age" : '20',
"Hobbies" : [],
"Skills" : [],
"Language" : []
},
{
"Id":3,
"Name":'Charlie',
"Age" : '25',
"Hobbies" : [{'HobbyId':5,'HobbyName':'Dance'},{'HobbyId':6,'HobbyName':'Sing'},{'HobbyId':7,'HobbyName':'Writing'}],
"Skills" : [],
"Language" : [{'Id':7,'Name':'English'}]
}
]
在上面的例子中有3個名爲Hobbies,Skills和Languages的子數組。 除了這三個,我還會有更多的子數組。 我實際上想要刪除子數組邏輯並使其成爲一個平面數組。
所以,當創建這個扁平數組時,我想從子數組中考慮所有參數,即使子數組是空的。 所以我的結果數組的第一項將有所有子數組的第一項等等。 即使子數組是空數組,我也需要考慮鍵,並將值作爲空值輸入。
所以我的結果數組將如下:
var resultArray = [
{
"Id":1,
"Name":'Ken',
"Age" : '30',
"HobbyId" : 1,
"HobbyName" : 'Swimming',
"SkillId" : 1,
"SkillName":'PHP',
"LangId" : 2,
"LangName" : 'English'
},
{
"Id":1,
"Name":'Ken',
"Age" : '30',
"HobbyId" : 2,
"HobbyName" : 'Reading',
"SkillId" : 2,
"SkillName":'MySQL',
"LangId" : 3,
"LangName" : 'Chinese'
},
{
"Id":2,
"Name":'Mike',
"Age" : '20',
"HobbyId" : '',
"HobbyName" : '' ,
"SkillId" : '',
"SkillName":'',
"LangId" : '',
"LangName" : ''
},
{
"Id":3,
"Name":'Charlie',
"Age" : '25',
"HobbyId" : 5,
"HobbyName" : 'Dance',
"SkillId" : '',
"SkillName":'',
"LangId" : 7,
"LangName" : 'English'
},
{
"Id":3,
"Name":'Charlie',
"Age" : '25',
"HobbyId" : 6,
"HobbyName" : 'Sing',
"SkillId" : '',
"SkillName":'',
"LangId" : '',
"LangName" : ''
},
{
"Id":3,
"Name":'Charlie',
"Age" : '25',
"HobbyId" : 7,
"HobbyName" : 'Writing',
"SkillId" : '',
"SkillName":'',
"LangId" : '',
"LangName" : ''
}
]
雖然它可能並且相對容易(您很快可能會得到一些答案),但在混合數據實體時這樣做是個壞主意。你最終得到2個Kens和3個Charlies。你爲什麼要這樣? – mik01aj
我需要使用jqGrid和一些rowspans創建一個表,所以實際上2個Kens和3個Charlies將被劃分爲1,並在行前顯示它們各自的Hobbies等,這是用jqGrid實現的唯一方法。 – Sonali
[通過數組字段展開對象的嵌套數組]的可能重複(http://stackoverflow.com/questions/40250107/flatten-a-nested-array-of-objects-over-a-array-field) –