Ich habe eine Baumstruktur, die CSS-Selektoren enthält, mein Ziel ist es, den Wert aus dem Eingabeelement, das dem Selektor entspricht, zu nehmen und sie in den Baum zu setzen. Zum Beispiel, wenn es eine <input type="text/>
mit der ID-Textbox und dem Wert 67 gibt, möchte ich dies tun {selector: "#textbox"} -> {value: 67}.Warum konvertiert Javascript/typescript implizit ein Datumsobjekt in eine Zeichenfolge?
Ich habe das funktioniert in allen Fällen, außer wenn der Eingabetyp Datum ist. In diesem Fall möchte ich die Zeichenfolge in ein Datumsobjekt konvertieren. Mein Code sieht wie folgt aus
val = sel.val();
let type = sel.attr("type");
if(type == "number")
{
val = Number(val);
}
else
if(type == "date")
{
val = Date(val);
}
//#1
ast["value"] = val;
//#2
delete ast.selector;
Am Punkt # 1, wenn der Eingabetyp Datum ist, val ein Date-Objekt ist. Bei Punkt # 2 ist ast ["value"]/ast.value ebenfalls ein Date-Objekt. Das Drucken des gesamten Ast-Objekts zeigt jedoch ast ["value"]/ast.value als eine Zeichenkette. Dieser Zeichenfolgewert wird durch den Rest des Codes weitergegeben und verursacht Probleme. Dies ist ein Zitat aus der Konsole diesen
Wed Jul 27 2016 10:14:19 GMT-0600 (MDT) eval.js:249 //ast["value"] at point #2
Object {selector: "this", value: "Wed Jul 27 2016 10:14:19 GMT-0600 (MDT)"} eval.js:250 //ast at point #2
zeigt Wenn das Datum nicht wurde implizit umgewandelt zu werden, würde der Ausgang
seineWed Jul 27 2016 10:14:19 GMT-0600 (MDT) eval.js:249 //ast["value"] at point #2
Object {selector: "this", value: Wed Jul 27 2016 10:14:19 GMT-0600 (MDT)} eval.js:250 //ast at point #2
ich diesen Code in Chrome und Firefox getestet habe, sowohl Ausbeute das gleiche Ergebnis.
Sind Sie sicher, dass es eine Zeichenfolge ist? Könnte nur eine Konsole Funktion/"Feature" sein. –
Sie können es immer auf ein Datum umwandeln. Obwohl "Date.prototype.toString" IIRC implementationsabhängig ist, sollten Sie in Ordnung sein, solange Sie das Datum aus der plattformeigenen String-Darstellung konstruieren. –
Wirf es nicht auf ein Date, wenn es kein Date ist! Das ist nur die Dose die Straße hinunter treten. –