簡體   English   中英

JavaScript 數組 - 推送多維數組

[英]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 對象不能有重復的鍵。

JSON 對象基本上是一個Map它具有keysvalues 對象中的每個key都必須是唯一的。

無效的 JSON

您作為您想要的結果發布的內容永遠不會存在,因為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]
    }
}

筆記:

  1. 你的名字不一致。 真的嗎? 他們每個人都是不同的格式
  2. 不要縮寫。
  3. 不要以String類型存儲多值字段,使用真正的Array [1,2,3,4]而不是"1,2,3,4"
  4. 不要以String類型存儲多值字段,使用真正的Object { amount: 5000, currency: "USD" }而不是"5000 USD"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM