Vielleicht ist das eine wirklich dumme Frage, aber ich habe offensichtlich etwas übersehen.
Betrachten Sie den folgenden Code:
var selectedItems = [];
selectedItems.push("0ce49e98-a8aa-46ad-bc25-3a49d475e9d3");
//fyi, selectedItems[selectedItems.length] = "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3"; produced the same result.
Am Ende selectedItems
Der Inhalt sieht folgendermaßen aus:
Name Value Type
------------- -------------------------------------- ------
selectedItems {...} Object
- [0] "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3" String
- length 1 Long
Aber wenn ich einfach versuche, split() auf die gleiche Zeichenfolge aufzurufen, wie dies:
selectedItems = "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3".split(",")
Jetzt sieht der Inhalt meines vermeintlichen Arrays wie folgt aus (fehlende Länge):
Name Value Type
------------- -------------------------------------- ------
selectedItems {...} Object
- [0] "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3" String
Haben Sie eine Idee, was der Unterschied ist? Was passiert hier eigentlich?
Vielen Dank im Voraus.
AKTUALISIERT : Ich habe das Gefühl, es gibt tatsächlich etwas strukturell über die beiden resultierenden Werte unterschiedlich, weil (Atlas) Ajax auf die eine mit der Länge-Eigenschaft erstickt, wenn ich versuche, es zu einem Server-seitigen WebMethod (keine tatsächliche Fehlermeldung übergeben, aber ich weiß, der Aufruf fehlschlägt). Ich bin mir nicht sicher.
UPDATE #2 Mir ist aufgefallen, dass das Einstellen der targetLocationIdList auf diese Weise dazu führt, dass die Eigenschaft "length" im Fenster Quick Watch nicht angezeigt wird:
var params =
{
jobId : args.get_JobId(),
targetLocationIdList : retVal.split(',')
};
Diese Ergebnisse enthalten jedoch die Eigenschaft "Länge", die im Fenster Quick Watch angezeigt wird:
var retValArr = [];
retValArr = retVal.split(',');
var params =
{
jobId : args.get_JobId(),
targetLocationIdList : retValArr
};