Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.
Array speichern in dataVar ergibt Object
#1 Array speichern in dataVar ergibt Object
Hallo @Ingmar
Wenn ich ein Array in eine dataVar speichere kommt bein lesen immer ein Object zurück.
testArray = ["Wert1","Wert2","Wert3","Wert4"];
Speichern mit getDataVar.
Nach getDataVar habe ich aber ein Object statt Array
{"0":"Wert1","1":"Wert2","2":"Wert3","3":"Wert4"}
Ist das ein Bug?
Wie kann man erreichen dass nach dem getDataVar wieder ein Array vorhanden ist?
Edit:
Wenn ich das Array aber in ein Object setze dann bleibt es erhalten.
testArray = {
array: ["Wert1","Wert2","Wert3","Wert4"]
}
Dann habe ich nach getDataVar wieder ein Array, aber im Object
testArray .array // ["Wert1","Wert2","Wert3","Wert4"]
Interessant. Da müsste ich selbst nachschauen, ob das ein Fehler oder so gewollt ist.
Unabhängig davon lässt sich das vermutlich schlecht ändern, da sonst ja alte Plugins ggf. nicht funktionieren.
Du kannst dir das recht einfach zwischen Object und Array umwandeln wie du es brauchst...
2
3
4
5
6
7
8
function toArray(_Object){
var _Array = new Array();
for(var name in _Object){
_Array[name] = _Object[name];
}
return _Array;
}
2
3
4
5
6
7
function toObject(_Array){
var _Object = new Object();
for(var key in _Array){
_Object[key] = _Array[key];
}
return _Object;
}
geklaut von hier: https://www.hiren.dev/2011/10/convert-ja...-object-to.html
#3 RE: Array speichern in dataVar ergibt Object
Ich werde es wahrscheinlich so machen, daß ich das Array vor dem Speichern in ein Objekt packe und beim Einlesen wieder aus dem Object hole.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var array_1 = [];
var arrayobj = {
'array':[]
};
for(i=0; i<4; i++) {
array_1.push("Wert_"+i); // Array fuellen
}
arrayobj.array = array_1; // Array in Object packen und speichern
xobor.plugin('mike48test1a').setDataVar('userdata', 5, tuserID, arrayobj, function(res) {
console.log("Plugin Variablentest - array_1 gespeichert: " + res);
});
xobor.plugin('mike48test1a').getDataVar('userdata', 5, tuserID, function(res) {
array_1 = res.array; // Array aus Object holen
});
array_1.push("neuerEintrag1"); // mit Array Methode Eintrag einfuegen
So brauche ich nur bei setDataVar und getDataVar etwas Code ergänzen und kann die Array-Methoden wie gehabt verwenden.
Ich hatte bisher auch Schleifen benutzt um beim getDataVar wieder Arrays aus den Objecten zu machen.
Das ist aber umständlich und benötigt Zeit. Ich dachte, ich hätte mir das sparen können.
Es gab aber immer zusätzliche Problem wenn das Array mal leer war.
Die Lösung die jetzt gefunden habe löst das Problem auch und ist schneller.
- 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
Jetzt anmelden!
Jetzt registrieren!
© 2017 Xobor | Forum-Software