JS Array erstellen [checkboxen]

EuroCent

Klappstuhl 2.0
Hallo zusammen,

ich habe folgende Frage.
Ich habe verschiedene Checkboxen die Ich Dynamisch generieren lassen.

Nun möchte Ich nur die Checkboxen in einen Array speichern, die der User auch auswählt.
Wenn er sie abwählt dann natürlich die Liste aktualisieren.

Kann mir jemand unter die Arme greifen? :)

Mein Ansatz war wie folgt:
Javascript:
var excelArray = [];
var excelData = {};

$(document).ready(function() {
    excelArray.splice(0, excelArray.length);
    excelData = {};
});

function createExport(eleName, value) {
    excelData.Name = eleName;
    excelData.Wert = value;
   
    if($('#' + eleName).prop('checked')) {
        //console.log("Name: " + eleName + " | Wert: " + value);
        excelArray.push(excelData);
        console.log(excelArray);
    } else {
        excelArray.pop(excelData);
        console.log(excelArray);
    }
};

Das createExport wird beim Klicken auf die Checkbox ausgelöst.
Um aber zu prüfen ob die Checkbox gecheckt wird, prüfe Ich dies mit prop und lass Sie erst dann ins Array schreiben, ansonsten soll es nicht ins Array bzw. wieder entfernt werden. :)

Das funktioniert zwar, aber er überschreibt mir ständig alle anderen gleich mit :/

Was mach Ich hier falsch, dass er mir die Werte immer wieder überschreibt?
 
Übernimm die Definition von excelData in die Funktion createExport. Ich denke, er schreibt immer nur eine Referenz ins Array, die jedes Mal auf das selbe globale Objekt verweist.
Code:
function createExport(eleName, value) {
    var excelData = {};
    excelData.Name = eleName;
    excelData.Wert = value;
 
Oder gleich:
Javascript:
excelArray.push({Name: eleName, Wert: value});

Übrigens würde ich let/const empfehlen statt var.
 
Zurück