musiałem to zrobić sam, a po znalezieniu na to pytanie nie jak każda z odpowiedzi: nie podoba mi regex i inni są ograniczone. Można uzyskać zmienną data
na wiele sposobów. Będę używał metody jQuery's serializeArray
, gdy zaimplementuję to.
function parseInputs(data) {
var ret = {};
retloop:
for (var input in data) {
var val = data[input];
var parts = input.split('[');
var last = ret;
for (var i in parts) {
var part = parts[i];
if (part.substr(-1) == ']') {
part = part.substr(0, part.length - 1);
}
if (i == parts.length - 1) {
last[part] = val;
continue retloop;
} else if (!last.hasOwnProperty(part)) {
last[part] = {};
}
last = last[part];
}
}
return ret;
}
var data = {
"nom": "123",
"items[install][item_id_4]": "4",
"items[install][item_id_5]": "16",
"items[options][takeover]": "yes"
};
var out = parseInputs(data);
console.log('\n***Moment of truth:\n');
console.log(out);
Przez "Czysta JavaScript" rozumiem "Bez używania JavaScriptu napisanego przez inne osoby, takie jak zespoły jQuery lub YUI"? (W przeciwieństwie do "Bez Flasha" lub "Bez DOM"?) – Quentin
Z technicznego punktu widzenia jQuery *** to "czysty JavaScript". Czy chcesz zrozumieć, jak czytać [elementy formularzy ze zwykłym DOM] (https://developer.mozilla.org/en/DOM/HTMLFormElement) lub chcesz być bardziej produktywny i robić rzeczy robione? –
jest "querySelectorAll" również czysty? – pimvdb