![](/img/trans.png)
[英]How do I turn a string in dot notation into a nested object with a value?
[英]How transform string dot notation to nested object?
我想将点符号字符串(如“ abcd”)转换为对象。 如果对象不存在,我想创建一个空对象。
var str = 'a.b.c.d'
var obj = {}
// so ...
function dotToObj(obj, str) {
// something
obj[?] = obj[?] || {}
}
// If object doesnt exist so create a empty object.
var rsp = dotToObj(obj, str);
console.log(rsp)
// Excpect:
Object {a: Object}
a: Object
b: Object
c: Object
d: Object
__proto__: Object
__proto__: Object
__proto__: Object
__proto__: Object
您可以使用Array.prototype.reduce()
拆分字符串并使用这些部分作为参考,其中obj
被用作起始对象,并且在迭代时将返回新的参考。
var str = 'abcd', obj = {}; str.split('.').reduce(function (r, a) { r[a] = r[a] || {}; return r[a]; }, obj); document.write('<pre>' + JSON.stringify(obj, 0, 4) + '</pre>');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.