采取以下对象。我正在尝试将字符串路径传递给“gold”,eval(),然后像这样递增:
var inv = {
"gold" : 10
}
eval('inv.gold')++;
然而,它不起作用。我也尝试过使用JSON.parse,但它不起作用(无论是我写错了还是其他我不知道的东西)。
这样做的正确方法是什么?
答案 0 :(得分:0)
答案 1 :(得分:0)
你可能不想在这里评估,而只是使用迭代器函数。例如:
function setProperty(object, chain, value) {
if(typeof chain === "string") {
chain = chain.split(".");
}
if(chain.length === 1) {
object[chain[0]] = value;
} else {
setProperty(object, chain.slice(1), value);
}
}
但真正的问题当然是为什么你需要根据一个完整的访问链设置值,因为这通常表明某些东西不太正确(在编写解析器之外)