首页 > 解决方案 > 在现有对象中添加新对象的函数

问题描述

我对 Javascript 很陌生,并且对编写小程序有一个想法。我们的想法是在这里制作一个 Objekt (kunden),我们有一些客户。在这个 Objekt 中,我有一个现有的客户端 (kunde_1) 和一个方法 (erstellen() )。使用该方法,我想使用客户端计数器向现有的 Objekt (kunden) 添加一个新客户端 (new Objekt)。每次调用函数时,计数器都应该计数。这是我的尝试,但我不知道如何使用我的计数器来创建新客户端。这是我得到的错误:

未捕获的类型错误:无法在字符串“kunde_2”上创建属性“vorname”

是否可以稍微调整我的代码以使其正确,或者我是否走上了完全错误的道路......

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"

}

};

这是解决问题后的新代码,特别感谢@Deivid Ugarte(我的评论是德语):

// 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();

标签: objectmethods

解决方案


您需要将 neuer_kunde 定义为对象let neuer_kunde = {},然后将名称分配给对象neuer_kunde.name = kunden_${count_kunde}。

您遇到的错误是您试图将属性分配给第一个创建的字符串


推荐阅读