Как из строки получить обьект?
Как превратить строку в обьект:
строку 'a.b.c.d' в обьект {a: {b: {c: 'd'}}} ? |
для чего это??
можно так: var str = '{"a": {"b": {"c": "d"}}}'; console.log(JSON.parse(str)); |
function StringToObject(str) { var a = '"}'; str = str.split('.'); for(var i=0; i<str.length; i++) a += '}'; return JSON.parse('{"'+str.join('":{"')+a); } console.log( StringToObject('a.b.c.d') ); Может, как-нибудь так :D |
а еще можно так:
var str = 'a.b.c.d'; var obj; if (str == 'a.b.c.d') obj = {a: {b: {c: 'd'}}}; console.log(obj); :D |
function my_split(separator, str){ var exp = {}; arr = str.split(separator) if( arr.length > 1 ){ first_val = arr[0]; str = str.substr(first_val.length+separator.length); exp[ first_val ] = my_split(separator, str) return exp; } else { return str; } } str = 'a.b.c.d'; res = my_split('.', str); |
как оперативно ух ты...
что то не работает.... подключить что то надо? задание такое тестовое... для этого надо =) <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Test 01</title> <script type="text/javascript" > function StringToObject(str){ var a = '"}'; str = str.split('.'); for(var i=0; i<str.length; i++) a += '}'; return JSON.parse('{"'+str.join('":{"')+a); } console.log( StringToObject('a.b.c.d') );</script> </head> <body > <canvas id="canvas" width="300" height="300"> Canvas not supported. </canvas> </body></html> |
function StringToObject(str) { var a = '"'; str = str.split('.'); for(var i=0; i<str.length; i++) a += '}'; return JSON.parse('{"'+str.join('":{"')+a); } console.log( StringToObject('a.b.c.d') ); Во. |
что то до сих пор не работает(
пишет : Uncaught SyntaxError: Unexpected token } |
скорей всего не хватает кавычки.. или лишняя
|
function StringToObject(str) { var a = '"'; str = str.split('.'); for(var i=0; i<str.length; i++) a += '}'; console.log('{"'+str.join('":{"')+a); } console.log( StringToObject('a.b.c.d') ); посмотрите что выводит.. не хватает присвоения: {"a":{"b":{"c":{"d"}}}} должно быть хотя бы так: {"a":{"b":{"c":{"d": 1}}}} |
Часовой пояс GMT +3, время: 17:12. |