我試圖建立一個快速的JavaScript函數,將收到一個JavaScript對象是這樣的:正則表達式和嵌套方括號來單獨亞
{
"sample[one]": "value 1",
"sample[hard][damn_you[0]]": "this 1",
"sample[hard][damn_you[1]]": "this 2"
}
並將它轉換爲是這樣的:
{
"[sample][one]": "value 1",
"[sample][hard][damn_you][0]": "this 1",
"[sample][hard][damn_you][1]": "this 2"
}
微妙但很大的差異。我已經完成了第一部分,其中涉及將方塊的第一部分包裝在方括號中,但是當要取出嵌套方括號並將其排除時,我不知所措。我一直在嘗試一段時間沒有成功。這是我到目前爲止有:
var data = {
"sample[one]": "value 1",
"sample[hard][damn_you[0]]": "this 1",
"sample[hard][damn_you[1]]": "this 2"
},
subset = /^([a-z0-9-_]+?)\[/i;
for (var key in data) {
if (subset.test(key)) {
data[key.replace(subset,'[$1][')] = data[key];
} else {
data[key.replace(/^(.+)$/,'[$1]')] = data[key];
}
delete data[key];
}
它輸出這樣的:
{
"[sample][one]": "value 1",
"[sample][hard][damn_you[0]]": "this 1",
"[sample][hard][damn_you[1]]": "this 2"
}
但很茫然,當涉及到提取這些嵌套方括號。有任何想法嗎?
正則表達式和「嵌套」通常是一個不好的組合... – elclanrs 2013-03-03 23:43:01
我同意。你會推薦什麼選擇?試圖找到另一種方式時,我很茫然。任何建議將不勝感激! – 2013-03-04 02:28:04