[英]How do you perform `push` on a JavaScript object?
我想要實現的是在JavaScript對象上使用push()
,如下所示:
var apps = {
app1:
[
"ci-extension",
"Unnamed",
"<h1>Hello world!</h1>"
],
app2:
[
"ci-extension",
"Another one!",
"Cool!"
]
}
目的是向對象添加第三個鍵“ demo ”,然后再向其推三行。 因此,在所有推送之后,對象應如下所示:
var apps = {
app1:
[
"ci-extension",
"Unnamed",
"<h1>Hello world!</h1>"
],
app2:
[
"ci-extension",
"Another one!",
"Cool!"
],
demo:
[
"ci-google",
"My demo app!",
"Some content"
]
}
我嘗試了以下代碼Object.keys(apps).push("demo");
(如果有任何意義)。 作為輸出,我只有3個 ,並且鍵“ demo”沒有添加到對象中。
然后將項目添加到演示中,我嘗試使用這段小代碼Object.keys(apps)["demo"].push("blah blah blah...");
,但完全無效。
您無需在此處push()
,這是為了添加到現有數組。 您只想添加一個密鑰。 最簡單的方法是這樣的:
apps.demo = [ "ci-google", "My demo app!", "Some content" ];
或者,等效地
apps["demo"] = [ "ci-google", "My demo app!", "Some content" ];
您的代碼不起作用的原因是因為Object.keys( apps )
創建了一個新數組,其中包含apps
對象中的所有鍵,但是對該數組執行操作對實際的apps
對象沒有任何作用-只是編輯您的新數組。 您需要做的是直接更改apps對象(如上所示)。
注意:鄧肯的答案具有最低的學習曲線。
這么說(尤其是因為您已經在內置Object類型上使用了.keys()
方法),您可以查看以下兩個選項:
這兩種方法都將返回包含屬性的新對象,這些屬性將作為第二個參數傳遞給函數。
Object.assign(demo, {new_property})
將返回具有demo 自身屬性的對象-從而忽略了原型鏈。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.