tôi cần phải làm điều này bản thân mình và sau khi tìm thấy câu hỏi này tôi không thích bất kỳ câu trả lời: Tôi không thích regex và những người khác còn hạn chế.
Bạn có thể nhận được data
biến nhiều cách. Tôi sẽ sử dụng phương pháp serializeArray
của jQuery khi tôi thực hiện điều này.
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);
Bằng "JavaScript thuần túy", tôi hiểu ý bạn là "Không sử dụng JavaScript được viết bởi những người khác, chẳng hạn như nhóm jQuery hoặc YUI"? (Trái ngược với "Không có Flash" hoặc "Không có DOM")? – Quentin
Về mặt kỹ thuật, jQuery *** là *** "JavaScript thuần túy". Bạn có muốn hiểu cách đọc [các phần tử biểu mẫu có DOM thuần túy] hay không (https://developer.mozilla.org/en/DOM/HTMLFormElement) hoặc bạn muốn làm việc hiệu quả hơn và Get Stuff Done? –
là 'querySelectorAll' cũng thuần túy? – pimvdb