Wie füge ich mit Javascript ein Suffix zu duplizierten Arrays von Objekten hinzu?JavaScript

Javascript-Forum
Guest
 Wie füge ich mit Javascript ein Suffix zu duplizierten Arrays von Objekten hinzu?

Post by Guest »

Ich habe folgendes Array von Objekten

Code: Select all

let views = [
{
name: "A View",
active: true,
},
{
name: "B View",
active: false,
},
{
name: "C View",
active: false,
}
];
Wenn weitere Elemente hinzugefügt werden, eines nach dem anderen mit dem vorhandenen Namen, zum Beispiel ein weiteres „A View“ und ein weiteres „A View“, wie zum Beispiel

Code: Select all

{
name: "A View",
active: true,
}
Ich möchte die Suffixnummer in der Zählreihenfolge zum Namen hinzufügen, also habe ich

Code: Select all

[
{
name: "A View",
active: true,
},
{
name: "B View",
active: false,
},
{
name: "C View",
active: false,
},
{
name: "A View 2",
active: true,
}
]
nach dem ersten neuen „A View“ hinzugefügt
Und

Code: Select all

[
{
name: "A View",
active: true,
},
{
name: "B View",
active: false,
},
{
name: "C View",
active: false,
},
{
name: "A View 2",
active: true,
},
{
name: "A View 3",
active: true,
}
];
Nachdem das zweite „A View“-Element hinzugefügt wurde und so weiter...
Entferne ich dann „A View 2“, möchte ich, dass das Suffix „2“ verfügbar ist für die neue „A-Ansicht“ hinzuzufügen, wenn ich sie hinzufüge. Das nächste „A View“-Element wird also „A View 2“ sein, nicht „A View 4“
Dies ist meine aktuelle Lösung

Code: Select all

const addItem = (item) => {
views = [...views, item];
let names = {};

views.forEach((obj) => {
if (names[obj.name]) {
obj.name += " " + ++names[obj.name];
} else {
names[obj.name] = 1;
}
});

console.log("views", views);
};
Das Problem ist, dass das Suffix nicht korrekt hinzugefügt wird.
Wenn ich die Funktion dreimal aufrufe und dasselbe Objekt übergebe, wie zum Beispiel

Code: Select all

addItem({
name: "A View",
active: true,
});
Ich werde das haben
Image

Hier ist das funktionierende Beispiel – https://codesandbox.io/p/sandbox/8dhpl3

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post