Как создать массив в js
У меня есть список блоков и у каждого есть свой конструктор форм(скрипт ниже). Я перебираю все блоки и получаю у них значения data-builder и data-id. Затем я хочу создать из них массив ключ = значение. А потом в скрипте конструктора вставить значение data-builder в formData: arr['j'] и data-id в +arr['id']+ . Но не выходит.
var arr = [];
$('div[data-builder]').each(function() {
arr.push('j' : $(this).attr('data-builder'), 'id' : $(this).attr('data-id'));
});
arr.forEach(function(arr) {
let options = {
dataType: 'xml',
onSave: function(evt, formData){showPreview(formData)},
formData: arr['j'],
disableFields: [
'autocomplete',
'file',
'date',
'hidden',
'button',
'checkbox-group',
'radio-group',
'number'
],
disabledAttrs: ["access","required","toggle","inline"],
};
const $fbEditor = $('.build-wrap[data-id="'+arr['id']+'"]');
const formBuilder = $fbEditor.formBuilder(options);
});
Ответы (1 шт):
Автор решения: 7-zete-7
→ Ссылка
В случае примера проще использовать массив объектов по примеру:
var arr = [];
$('div[data-builder]').each(function() {
arr.push({ j: $(this).attr('data-builder'), id: $(this).attr('data-id') });
});
В коде вопроса это, практически, и написано однако были упущены фигурные скобки для объявления объекта.
Далее код из вопроса будет корректно работать.