javascript - Wie konvertiert man ein PostgreSQL-Array in JS
Wie man ein PostgreSQL-Array in einen String konvertiert, z. B. "{1,2,3,4}", zu einem JavaScript/TypeScript-Array: [1,2,3,4]. Die Werte im Array müssen vom Typ Zahl sein.
Ich habe eine Lösung mit replace und split versucht, aber sie gibt Zeichenkettenwerte zurück.
var test = "{1,2,3,4}";
test = test.replace("{", "");
test = test.replace("}", "");
//test = test.replace(/\{|\}/gm, "") //regex replace
test.split(",") //['1', '2', '3', '4']
Antwort #1
Eine sauberere Lösung, die nicht das Erstellen eines JSON-Strings nur zum Parsen beinhaltet:
test = test.match(/[\w.-]+/g).map(Number)
Aber wenn man mit einer Datenbank arbeitet, sollte man die Daten normalerweise nicht selbst analysieren, es sei denn, man schreibt den Treiber (aber es gibt bereits gute für PostgreSQL).
Antwort #2
Ich finde die Lösung mit JSON.parse, aber dies benötigt auch ein replace vor der Konvertierung.
var test = "{1,2,3,4}";
test = test.replace("{", "[");
test = test.replace("}", "]");
JSON.parse(test) //[1, 2, 3, 4]
Testen mit dem Erstellen eines Strings für Array-Größe: 100000~900000: https://stackblitz.com/edit/typescript-gavnpg
