javascript - javascript 以编程方式构建对递归对象键的引用
问题描述
假设这个字符串:
var string = 'abcd';
//I split the string by characters
var keys = string.split(''); // that return ['a','b','c','d'];
现在我有一个像这样的对象:
var object = {
a:{
b:{
c:{
d:{
}
}
}
}
}
如何以编程方式构建一些类似的东西
object['a']['b']['c']['d']
:从keys
数组中;
解决方案
使用reduce
,将当前嵌套对象作为累加器传递(以基础对象作为初始值):
var object = {
a:{
b:{
c:{
d:{
foo: 'bar'
}
}
}
}
};
var string = 'abcd';
var keys = string.split('');
console.log(
keys.reduce((a, key) => a[key], object)
);
推荐阅读
- c++ - 如何配置 VSCode 任务以在 Linux 上编译多个文件?
- node.js - Router.use() 需要一个中间件函数,但未定义 socket.io 和 mocha
- python - 计算特定 dataframe.iloc 中的元素
- javascript - 重新加载页面时未重新读取 JSP 会话变量
- java - 我在使用 WebDriver 时收到 WebDriverException 和 AccessDeniedException;如何解决?
- c# - COM 互操作,创建 .net com 并在 .net 中使用
- android - 命令失败:./gradlew app:installDebug -PreactNativeDevServerPort=8081
- asp.net - 在当前视图或新视图中下载文件
- python - python中带有按钮的时钟
- firebase - Flutter & Firebase:“Query”类型不是“CollectionReference”类型的子类型