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