如何在 JavaScript 中将方括号对象键转换为嵌套对象?
javascriptweb developmentfront end technologyobject oriented programming
我们知道有两种方法可以在 JavaScript 中访问对象内的嵌套键。
例如,取这个对象 −
const obj = {
object: {
foo: {
bar: {
ya: 100
}
}
}
};
如果我们需要访问或更新嵌套属性 'ya',我们可以像这样访问它 −
Way 1 −
obj['object']['foo']['bar']['ya']
orWay 2 −
obj.object.foo.bar.ya
这两种方式都指向同一个目的地。
我们需要编写一个 JavaScript 函数,该函数将嵌套键的路径作为字符串接收,如方式 1 所示,并将其转换为方式 2 所示的符号
示例
其代码为 −
const obj = { "object[foo][bar][ya]": 100 };
const constructDotNotation = obj => {
const keys = Object.keys(obj)[0].split('[').map(el => {
return el.replace(']', '');
});
let res = {};
keys.reverse().forEach(key => {
if (Object.keys(res).length === 0){
res[key] = obj[Object.keys(obj)[0]];
}else{
const temp = {};
temp[key] = res;
res = temp;
};
});
return res;
};
console.log(JSON.stringify(constructDotNotation(obj), undefined, 4));
输出
控制台中的输出将是 −
{
"object": {
"foo": {
"bar": {
"ya": 100
}
}
}
}
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

