当前字符串:folder1/folder2/folder3
我需要转换为:['folder1']['folder2']['folder3']
我试过的是:
let folder = "folder1/folder2/folder3";
let splittedFolder = folder.split('/');
let newFolder = splittedFolder.join('[' ']');我想我完全错了..。我想要实现一些像userDB['folder1']['folder2']['folder3']这样的想法来导航到一个对象并编辑它。
发布于 2019-02-23 19:10:56
您可以用斜杠拆分,然后映射到用['']s包围每个字符串,然后再加入:
let folder = "folder1/folder2/folder3";
const output = folder
.split('/')
.map(str => `['${str}']`)
.join('');
console.log(output);
但是,除非您使用eval,否则您无法使用这样的字符串来导航普通对象,而实际上不应该使用它。如果文字代码
userDB['folder1']['folder2']['folder3']将导致访问所需的嵌套值,然后从输入中获得该值,请使用reduce:
const val = folder.split('/')
.reduce((a, key) => a[key], userDB);或者,在以下之间处理可能未定义的对象:
const val = folder.split('/')
.reduce((a, key) => a !== undefined ? a[key] : undefined, userDB);https://stackoverflow.com/questions/54845131
复制相似问题