Home > Software engineering >  function to add new Objekt in an existing object
function to add new Objekt in an existing object

Time:11-12

i am pretty new to Javascript an had a idea for a small thing to code. The idea was to make an Objekt (kunden) in here we have some clients. In this Objekt i have one existing Client (kunde_1) and a Method (erstellen() ). With the Method i want to add a new client (new Objekt) to the exisiting Objekt (kunden) using a client counter. The counter should count up everytime the function ist called. Here ist my Try, but i have no real idea how to use my counter to create the new client. Here ist the Error that i get:

Uncaught TypeError: Cannot create property 'vorname' on string 'kunde_2'

Is it possible to adjust my code a bit to get it right or am i on a complete wrong path...

let count_kunde = 1; // because i already have one client called kunde_1
let kunden = {

erstellen() {
    count_kunde  =1;
    let neuer_kunde = `kunden_${count_kunde}`; // the idea was to create a variable that stores "kunde_2" and through DOT Notation add the values via prompt.
    neuer_kunde.vorname = prompt("Vorname:"),
    neuer_kunde.nachname= prompt("Nachname"),
    neuer_kunde.straße= prompt("Straße"),
    neuer_kunde.hausnummer= prompt("Hausnummer"),
    neuer_kunde.plz= prompt("Plz"),
    neuer_kunde.ort= prompt("Ort")
},

kunde_1: {
    vorname: "Bengt",   
    nachname: "Flecks",
    straße: "Scheffelstraße",
    hausnummer: 33,
    plz: 10367,
    ort: "Berlin"

}

};

Here ist the new code after solving the Problem with special thanks to @Deivid Ugarte (with my comments in german):

// Anzahl aktueller Kunden zum Start des Programms
let count_kunde = 1; 

// Erstellung des Objektes kunden zum speichern der neu erstellten 
Kunden
let kunden = {

kunde_1: {
    vorname: "Bengt",
    nachame: "Flecks",
    straße: "Scheffelstraße",
    hausnummer: 33,
    plz: 10367,
    ort: "Berlin"
}
};

//Funktion zum erstellen eines neuen Kunden
const kunden_erstellen = function() {

    count_kunde  = 1;
    let neuer_kunde = `kunde_${count_kunde}`;
    // Erstellung des Objektes kunden.kunde_n wobei n = count_kunde um 
    im nächsten Schritt die Eigentschaften mit den eingeegebenen Werten 
    hinzuzufügen
    kunden[neuer_kunde] = {}; 
    kunden[neuer_kunde].vorname = prompt("Vorname:"),
    kunden[neuer_kunde].nachname = prompt("Nachname"),
    kunden[neuer_kunde].straße= prompt("Straße"),
    kunden[neuer_kunde].hausnummer= prompt("Hausnummer"),
    kunden[neuer_kunde].plz= prompt("Plz"),
    kunden[neuer_kunde].ort= prompt("Ort")

};

// Funktionsaufruf zum erstellen eines Kunden
kunden_erstellen();

CodePudding user response:

You need to define neuer_kunde as an object let neuer_kunde = {} and then assign the name to the object neuer_kunde.name = kunden_${count_kunde}.

The error you had was that you are trying to assign a property to the first created string

  • Related