Javascript 将对象追加到预定义数组

Javascript 将对象追加到预定义数组,javascript,Javascript,向数组添加新对象时遇到问题 我有一个函数,addValue(shopItem,subTotal),其中shopItem是一个字符串,subTotal是一个整数: function addValue(shopItem, subTotal) { document.getElementById("extraSubHeader").innerHTML = "Current Total: " + subTotal + " Gold"; var object = {name: shopIt

向数组添加新对象时遇到问题

我有一个函数,
addValue(shopItem,subTotal)
,其中
shopItem
是一个字符串,
subTotal
是一个整数:

function addValue(shopItem, subTotal)
{
    document.getElementById("extraSubHeader").innerHTML = "Current Total: " + subTotal + " Gold";

    var object = {name: shopItem.name, description: shopItem.description}
    alert("Bought " + shopItem.name + " for " + subTotal + " Gold.")
    playerItems.push(object);
}
playerItems
是一个对象数组,默认情况下包含以下内容:

playerItems = [
    { name: "Sword", description: "An old, rusty sword." }
];
但是,当我尝试添加新变量
object
(如上所述)时,它会擦除我已经输入到数组中的内容,并将其替换为
object
中的内容



编辑:我添加了一个console.log();显示
playerItems
对象,实际上它包含这两个对象。这一定是我如何迭代和显示它的问题。谢谢大家的帮助

在这段代码的控制台中进行一个简单的测试就可以了?您发布的代码片段还可以-代码中没有显示的问题看起来很好。你怎么知道playerItems正在被清除?您是否有其他引用playerItem的地方,并且可能会意外地指定一个值而不是
推送
?请注意,您正在传入
小计
,您将其用作第一行的小计,以及
警报
@javinor中单个项目的价格,我在playerItems中循环,如果您在程序开始时单击按钮执行此操作,它将显示预定义的剑对象,然而,如果你去商店买了药水,点击按钮只会显示药水。我在你的代码中看到两个潜在的问题:1你有var object——这是调用variables object的错误做法,即使在javascript的reserved words列表中有“object”而不是“object”,我仍然会避免在代码中使用这个词。2.您说过shopItem是一个字符串,但如果访问shopItem.name和shopItem.description,则表示shopItem不仅仅是一个字符串,而是一个对象。我不确定这两件事是否会导致您的代码执行不同,但这绝对值得检查。在该代码的控制台中进行一个简单的测试就可以了?您发布的代码片段没有问题-您没有显示的代码中的某个问题看起来很好。你怎么知道playerItems正在被清除?您是否有其他引用playerItem的地方,并且可能会意外地指定一个值而不是
推送
?请注意,您正在传入
小计
,您将其用作第一行的小计,以及
警报
@javinor中单个项目的价格,我在playerItems中循环,如果您在程序开始时单击按钮执行此操作,它将显示预定义的剑对象,然而,如果你去商店买了药水,点击按钮只会显示药水。我在你的代码中看到两个潜在的问题:1你有var object——这是调用variables object的错误做法,即使在javascript的reserved words列表中有“object”而不是“object”,我仍然会避免在代码中使用这个词。2.您说过shopItem是一个字符串,但如果访问shopItem.name和shopItem.description,则表示shopItem不仅仅是一个字符串,而是一个对象。我不确定这两件事是否导致您的代码执行不同,但这绝对值得检查。