在我正在创建的游戏中,我有一个函数可以获取元素的名称和数量,并将其添加到 JSON“玩家库存”中。
代码如下:
function inventory(addOrRemove, item, amount) {
console.log(item);
if (addOrRemove == 'add') {
if (player.inventory.item== undefined) {
player.inventory.item= amount;
} else {
player.inventory.item= player.inventory.item+ amount;
}
}
console.log(player.inventory)
}
以这种方式调用该函数时的输出如下:
inventory('add','coin',10)
// In the console log on line 2, "item" is defined as "coin"
// The player invetory object as called for in the console on line 10 has one value, "item: 10"
现在的问题是,它不会根据函数参数添加到数组中。我希望玩家库存对象为“player.inventory.coin: 10”而不是“player.inventory.item: 10”。这同样适用于任何商品,因此库存可以动态添加任何类型的独特商品。
我寻找了其他类似的问题,但找不到与我有同样问题的人,虽然也许这是因为我自己并不完全确定这个问题叫什么,但我确实付出了努力并被难住了.
最佳答案
您需要将 item
变量传递给您的 inventory
对象,如下所示:
player.inventory[item] = amount;
这将使用 item
变量中的字符串 'coin'
并将其设置为 inventory
对象中的键:
player.inventory['coin'] = amount;
关于javascript - 函数参数未正确添加到 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41605380/