Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.Dieser Inhalt ist leider völlig sinnfrei.
Der Beitrag enthält Aussagen oder Andeutungen, welche als Beleidigung angesehen werden könnten und im Zusammenhang unpassend und unnötig sind. Bei dem Ort hier handelt es sich um ein offizielles Support-Forum der Miranus GmbH für den Betrieb der Xobor Foren.
Beleidigungen, jedoch auch bereits kleinere Sticheleien, haben hier keinen Ort und stören den Zweck des Forums.
Dieser Beitrag enthält unerwünschte Werbung.
Dieser Beitrag verstößt gegen die Netiquette des Forums.
Beiträge, die IN GROßBUCHSTABEN oder fett geschrieben sind bitte vermeiden.
{[userwarning_empty_error]}
Es wird der oben genannte Grund verwendet. Klicken Sie hier, um den Inhalt der privaten Nachricht anzupassen
Legen Sie hier den Inhalt der PN-Benachrichtigung fest.
Hinweis: Dieses Mitglied wurde bereits 2 Mal verwarnt.
Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.
Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.
objecte in array speichern ??
Mitglied
Details
Beiträge:
6473
Registriert seit:
18.05.2012
Board-Nr
578865; 643516; 791178; 643516
Ich habe ein Problem beim speichern von objecten in einem array.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<script>
window.addEventListener('load', function ( ) {
/* object fuer die Daten einer Person */
var person = {
vorname: '',
name: '',
geboren: ''
};
/* Liste in der alle Personen gespeichert werden */
var liste = [];
for (var i=0, i<5; i++) {
/*
* in dieser Schleife werden je Personen die Daten
* initialisiert und mit push in die Liste eingetragen
*/
person.vorname = 'Vorname_'+i;
person.name = 'Name_'+i;
person.geboren = '01.06.202'+i;
liste.push(person);
}
function log (v, i, ar) {
/* Die Variable i enthält den Index des Wertes v
im Array ar. Diese drei Parameter werden an die
Callback-Funktion bei forEach übergeben. */
if (console && console.dir) {
// Ausgabe einer Objektstruktur auf die Konsole
console.dir(v);
}
}
liste.forEach(log)
});
</script>
Das ist dann das Ergebnis. In allen Indexen des Array ist die Person 4 drin.
Wenn ich aber die Liste nach jedem push in sessionstore zwischen speichere und vor dem push wieder einlese dann ist die Liste richtig.
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
if(xobor.plugin('vartest001').sessionstorage.get('liste') ) {
console.log("sessionstorage vorhanden");
liste=xobor.plugin('vartest001').sessionstorage.get('liste',);
liste.push(person);
xobor.plugin('vartest001').sessionstorage.set('liste',liste);
}else{
console.log("sessionstorage nicht vorhanden");
liste.push(person);
xobor.plugin('vartest001').sessionstorage.set('liste',liste);
}
Verstehen tue das nicht.
Hat Jemand eine Idee was da falsch ist?
www.friends-of-xobor.de (621181 - Template kann wechsel bei Pluin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)
07.09.2020 18:20 (zuletzt bearbeitet: 07.09.2020 18:23)
#2 RE: objecte in array speichern ??
cr
In der For-Schleife ist schon Mal ein kleiner Fehler:
Zitat von Mike48 im Beitrag #1
for (var i=0, i<5; i++) {
Nach dem var i=0 sollte statt dem Komma ein Semikolon, also var i=0;. Das behebt aber nur den Fehler, dass in der Konsole nicht mehr Unexpected token '<' angezeigt wird.
Dass der Array nur aus Person 4 besteht liegt daran, dass du das in Zeile 5-9 definierte Person-Objekt modifizierst. Dadurch werden auch die bestehenden Objekte in der Liste beeinflusst.
Javascript weiß also noch, wo das Objekt überall vorhanden ist, und passt es entsprechend an. Wenn du probeweise in Zeile 20 (nach der For-Schleife und vor dem foreach) person.vorname = 'Test' einfügst wirst du merken dass auch das die ganze Liste beeinflusst.
Wenn du die Liste im localstorage zwischenspeicherst geht die Referenz zum bestehenden Objekt verloren. Deshalb wird es nicht mehr verändert.
Eine deutlich bessere Alternative wäre ein neues Objekt zum Array hinzufügen, statt das bestehende zu modifizieren.
Also statt die Attribute von dem bestehenden Objekt zu verändern:
1
2
3
4
2
3
4
person.vorname = 'Vorname_'+i;
person.name = 'Name_'+i;
person.geboren = '01.06.202'+i;
liste.push(person);
Erstellst du ein neues Objekt mit den gewünschten Attributen und fügst es zur Liste hinzu:
1
2
3
4
5
6
2
3
4
5
6
var person = {
vorname: 'Vorname_'+i,
name: 'Name_'+i,
geboren: '01.06.202'+i
};
liste.push(person);
Die Liste sieht dann wie gewünscht aus:
07.09.2020 20:21 (zuletzt bearbeitet: 07.09.2020 20:22)
#3 RE: objecte in array speichern ??
Mitglied
Details
Beiträge:
6473
Registriert seit:
18.05.2012
Board-Nr
578865; 643516; 791178; 643516
Danke @creator
klingt logisch, werde ich probieren.
Edit
bzw. hast du ja schon probiert.
www.friends-of-xobor.de (621181 - Template kann wechsel bei Pluin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)
- Informationen
- Aktuelle News
- Forum Tutorials - Tipps und Anleitungen
- SEO / Werbung fürs Forum
- Verwaltung
- Extras
- Design
- Plugin(system)
- Eure Fragen zu Tutorials
- Forum Support
- Fragen und Antworten
- Pluginsystem
- Plugins
- Templates & Sprachen
- Bugreport
- Verbesserungsvorschläge
- Sponsoren gesucht
- Das neue Xobor Business-Template
- News und Updates
- Bugreport
- Allgemeines Feedback
- Verbesserungsvorschläge
- Sonstiges
- Kaffeeklatsch
- Lob & Kritik
- Verbesserungsvorschläge
- Allgemeine Fragen
- Fehlermeldungen
- Verbesserungsvorschläge Responsive Design
- Bugreport Responsive Design
- Archiv - Alter Betatest
- Responsive Design - Verbesserungsvorschläge
- Responsive Design - Bugreport
- Fragen zum neuen Template
- Neue Administration Beta Test
- Bugreport Neue Administration
- Allgemeines Fragen & Feedback
- Verbesserungsvorschläge zur neuen Administration
- Shoutbox
Ähnliche Themen
Das Thema ist geschlossen
Sie haben keine Rechte zu antworten
Bereits Mitglied?
Jetzt anmelden!
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!
Jetzt registrieren!
Xobor Software
Das Unternehmen
Weitere Informationen
Forum erstellenIhr eigenes Forum
Die Forum-Software wird seit 1998 kontinuierlich weiterentwickelt.
© 2017 Xobor | Forum-Software
© 2017 Xobor | Forum-Software