我试图找出是否可以使用字符串作为路径来更新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"
Run Code Online (Sandbox Code Playgroud)
功能:
function updateObject(object, path, data) {
var pathArray = path.split(">");
// Some code here
}
updateObject(data, path, "10.00");
Run Code Online (Sandbox Code Playgroud)
更新
正如费利克斯指出的那样,答案可以在这里找到. JavaScript对象的动态深度设置 …