【发布时间】:2014-10-08 00:22:47
【问题描述】:
我正在尝试使用字符串动态访问对象的属性。 例如: ".id.public" -> anyObject["id"]["public"]
问题 - 我不知道我有多少参数(例如“.id”或“.id.public”或“.id.public.whatever”。
我做了一些解决方法:
var currentSplit = anyObject;
var splitted = "id.public".split("\.");
splitted.forEach(function(s) { currentSplit = currentSplit[s]; });
当我现在尝试覆盖对象属性时,我将覆盖引用而不是对象属性。
currentSplit = "test";
我已经尝试过anyObject["id.public"] = "test"; 之类的东西,但没有奏效。
【问题讨论】:
-
您无法在 javascript 中使用字符串访问嵌套对象属性,您需要某种辅助函数来为您完成此操作,您可以查看 angulars
$parse接口以获得一些灵感。跨度> -
两个共享相同值的变量并不意味着您可以通过分配一个变量来更改这两个变量。您打算在“id.public”读取一个值,还是在“id.public”写入一个值? this answer 对你有用吗?
标签: javascript