【发布时间】:2019-02-06 12:12:21
【问题描述】:
我尝试动态地深入一个对象。对象 children 是未知的,应该从字符串中使用。
我希望你能在下面看到我尝试做的事情。我已经注释掉了我无法找到解决方案的部分。
var global_object = {};
function populate(id, text) {
let parts = id.split('/');
for(let key in parts) {
let part = parts[key];
// global_object['this']['is']['a']['long']['url'] = text;
console.log(part);
}
}
populate('this/is/a/long/url', 'My text');
结果可能是这样的:
this: {
is: {
a: {
long: {
url: "My text"
}
}
}
}
https://jsfiddle.net/2f6kue74/
也接受 ES6 解决方案
【问题讨论】:
-
你的问题的答案是相似的,如果不一样的话:@Tony 虽然你正在做的事情被认为是不好的做法。 stackoverflow.com/questions/20424226/…
-
@ElieNassif 谢谢!为什么它被认为是不好的做法,还有什么替代方法?
-
@JensTörnell 如果您重命名另一段代码中的一个属性,则当前代码将不起作用。除非您对其进行大量控制。不确定您的项目的上下文是什么。
-
@ElieNassif 我尝试生成某种文件/文件夹 API,用于使用 ajax 从 PHP 获取文件和文件夹。这个想法是,当我发送我称之为的 url 或 id 时,它应该填充这个嵌套对象。然后稍后我可以使用该对象将文件树呈现为来自 js 的 html 元素。
标签: javascript object variables