array to object
array to object
by Сергей Тарасевич
HTML
<input type="text" name="ar_name[]" value="11 1" data-ar_search="ar_name">
<input type="text" name="ar_name[]" value="11 2" data-ar_search="ar_name">
<input type="text" name="ar_name2" value="22" data-ar_search="ar_name2">
<input type="text" name="ar_name3" value="33" data-ar_search="ar_name3">
<input type="text" name="ar_name6[]" value="55 1" data-ar_search="ar_name6">
<input type="text" name="ar_name6[]" value="55 2" data-ar_search="ar_name6">
<input type="text" name="ar_name6[]" value="55 3" data-ar_search="ar_name6">
<select class="selectstyle show-tick form-control input-sm" name="fs_nositeli[]" title="---" multiple="" data-actions-box="true" data-size="auto" data-live-search="true" data-selected-text-format="count" data-ar_search="fs_nositeli" tabindex="-98">
<option value="BD (Blu-ray Disc)">BD (Blu-ray Disc)</option>
<option value="Blu-Ray 3D" selected>Blu-Ray 3D</option>
<option value="BD-R">BD-R</option>
<option value="BD-Re" selected>BD-Re</option>
<option value="DVD R">DVD R</option>
<option value="DVD RW">DVD RW</option>
<option value="CD-RW">CD-RW</option>
</select>
<textarea name="textarea" value="textarea" data-ar_search="textarea">textarea textarea textarea</textarea>
JavaScript
"use strict";
var hash_array = function(a) {
var b = {};
$(a).each(function() {
if (this.value !== '') {
this.name = this.name.replace(/[\[\]]/g, '');
if (this.name in b) {
if ($.isArray(b[this.name])) {
b[this.name].push(this.value);
} else {
b[this.name] = [b[this.name], this.value];
}
} else {
b[this.name] = this.value;
}
}
});
return b;
}
console.log(hash_array($('[data-ar_search]').serializeArray()));