Вы можете изменить структуру данных, сделать значения массивов ключей следующим образом:
{
quiz: {
algorithm_id_1: [2,3],
algorithm_id_1: [1,6],
...
}
}
для этого вам нужно изменить способ обновления структуры данных.
По сути, вам нужно проверить, есть ли у объекта уже ключ с таким именем «method_id_1», если он не добавляет его, и установить его значение в массив со значением, введенным пользователем. Если оно уже существует, поместите вновь введенное значение в существующий массив.
В вашем примере вы воссоздаете карту каждый раз, когда есть изменения, это не идеально, но я не буду здесь это обсуждать.
jQuery(":input").change(function() {
for (var i = 0; i < allInputs.length; i++) {
// localStorage.setItem(i, allInputs[i].value);
// this is the part your question seems to be concerned with
var map = {};
var key = allInputs.get(i).id
var val = allInputs[i].value;
// if the key already exists in the map
if(map[key]){
map[key].push(val)
} else { // otherwise add it and set its value to an array of 1 entry
map[key] = [val]
}
// this should now be an object of key values where the values are arrays
console.log(keys)
}
});
На самом деле я не смог протестировать пример с вашим кодом jquery, однако я считаю, что он должен работать.