[英]JavaScript array - push multi dimensional array
我有一個這樣的數組:
message_list = [
{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD"
}
]
它的長度(例如, message_list.length
)是 1。
現在我有另一個這樣的數組:
added_user_data = [
{
"PostSharedLog": {
userids: "2,4,5"
},
"created": "2123123"
},
{
"PostSharedLog": {
userids: "3,1"
},
"created": "2123147"
}
]
它的長度 ( added_user_data.length
) 是 2。
我想將上述數組added_user_data
推入message_list
。
我嘗試在for
循環中執行此操作,現在由於 message_list 的長度為1
,對於第二次迭代,由於message_list[1]
不存在且未定義,因此不會推送值。 但我仍然想創建message_list[1]
即使它不存在。
如果我執行以下操作:
for(var k =0;<count(added_user_data.length);k++)
{
message_list[k].PostSharedLog = added_user_data[k].PostSharedLog ;
}
它只附加數組added_user_data
的第一行,並在我打印message_list
時給出這樣的輸出:
[{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD",
"PostSharedLog": {
userids: "2,4,5"
} }]
第二次迭代根本不追加任何內容。
我想看看以下內容:
[{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD",
"PostSharedLog": {
userids: "2,4,5"
},
"PostSharedLog": {
userids: "3,1"
}
}]
JSON 對象基本上是一個Map
它具有keys
和values
。 對象中的每個key
都必須是唯一的。
您作為您想要的結果發布的內容永遠不會存在,因為PostSharedLog
只能存在一次。 再次設置它只會改變值。
此外userids
不是有效的 JSON 密鑰,它應該用"
always!
任何JSON linter都會告訴你這是為什么。
{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD",
"PostSharedLog": {
userids: "2,4,5"
},
"PostSharedLog": {
userids: "3,1"
}
}
您可能需要做的是:
{
"MainBody": "test msg",
"EmployeeName": "test",
"EmployeeSalary": { "amount": 5000, "currency": "USD" },
"PostSharedLog": {
"UserIds": [2,4,5,3,1]
}
}
String
類型存儲多值字段,使用真正的Array
! [1,2,3,4]
而不是"1,2,3,4"
String
類型存儲多值字段,使用真正的Object
! { amount: 5000, currency: "USD" }
而不是"5000 USD"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.