Как создать массив в 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') });
});

В коде вопроса это, практически, и написано однако были упущены фигурные скобки для объявления объекта.

Далее код из вопроса будет корректно работать.

→ Ссылка