我试图弄清楚是否可以使用字符串作为路径来更新 JavaScript 对象。
在下面的示例中,我试图弄清楚如何使用
store>book>0>price
我的路径来更新第一本书的价格。
我知道我可以通过写作来访问它,data['store']['book'][0]['price']
但我需要能够动态地做到这一点。我尝试了几件事,但没有运气。有任何想法吗?
这需要适用于任何深度,而不是固定深度
数据:
var data = {
"store": {
"book": [
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
var path = "store>book>0>price"
功能:
function updateObject(object, path, data) {
var pathArray = path.split(">");
// Some code here
}
updateObject(data, path, "10.00");
更新
正如 felix 指出的那样,答案可以在这里找到。 JavaScript 对象的动态深度设置
这是我的场景的一个工作示例 http://jsfiddle.net/blowsie/Sq8j3/9/