Как конвертировать PostgreSQL Array в JS - PullRequest
0 голосов
/ 03 января 2019

Как конвертировать PostgreSQL Array в строку, например."{1,2,3,4}" в массив javascript / typcript: [1,2,3,4].Значения в массиве должны быть числового типа.

Я пробовал решение с replace и split , но оно возвращает строковые значения.

var test = "{1,2,3,4}";
test = test.replace("{", "");
test = test.replace("}", "");
//test = test.replace(/\{|\}/gm, "")  //regex replace
test.split(",")   //['1', '2', '3', '4']

Ответы [ 3 ]

0 голосов
/ 03 января 2019

Более чистое решение, не требующее создания строки JSON просто для ее анализа:

test = test.match(/[\w.-]+/g).map(Number)

Но при работе с базой данных обычно не требуется анализировать данные самостоятельно, если вы не пишете драйвер(но уже есть хорошие для postgresql).

0 голосов
/ 23 апреля 2019
JSON.parse("[" + test.slice(1, test.length-1) + "]")
0 голосов
/ 03 января 2019

Я нашел решение с помощью JSON.parse, но для этого также необходимо заменить перед преобразованием.

var test = "{1,2,3,4}";
test = test.replace("{", "[");
test = test.replace("}", "]");
JSON.parse(test)  //[1, 2, 3, 4]

Тест с построением строки для размера массива: 100000 ~ 900000: https://stackblitz.com/edit/typescript-gavnpg

...