вы лучше скажите, для чего все эти гарадушки..
|
и как добавить это присвоение?)))
|
просто такое задание и есть
есть строка 'a.b.c.d' превратить ее в обьект {a: {b: {c: 'd'}}} |
Цитата:
function StringToObject(str) { var a = '":1'; 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 = str.replace(/(a)\.(b)\.(c)\.(d)/, function() { var a = arguments; return eval('{'+a[1]+':{'+a[2]+':{'+a[3]+':"'+[a[4]+'"}}}'); }); Или: var str = 'a.b.c.d'; str = str.split('.'); var obj = eval('{'+str.[1]+':{'+str.[2]+':{'+str.[3]+':"'+[str.[4]+'"}}}'); |
:write:
var str = 'a.b.c.d'; str = str.replace(/([^.]+)$/,'"$1"'); str_plus = Array(str.split('.').length).join('}'); str += str_plus; str = str.replace(/([^.]+)\./g ,'{"$1":'); var data = JSON.parse(str); alert(JSON.stringify(data));// для проверки |
Учитесь, шпана )
var str = 'a.b.c.d'; var o = str.split('.').reduceRight(function(a, b){var o = {}; o[b] = a; return o;}); alert(JSON.stringify(o)); Никаких eval'ов, никаких регулярок и прочей фигни :) |
danik.js, хрень :D
С Eval'ом круче :) |
Ruslan_xDD, завидуй молча )
|
Часовой пояс GMT +3, время: 11:57. |