javascript - როგორ გადავიყვანოთ PostgreSQL მასივი JS-ში


როგორ გადავაქციოთ PostgreSQL-ის მასივი სტრინგში, მაგალითად "{1,2,3,4}", javascript/typescript-ის მასივად: [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']

პასუხი #1

ხრიკიანი უფრო სუფთა გადაწყვეტა, რომელიც JSON სტრიქონის შექმნას არ საჭიროებს, მხოლოდ მისი ანალიზისთვის:

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

მაგრამ როცა მონაცემთა ბაზასთან მუშაობთ, ჩვეულებრივ არ უნდა გააანალიზოთ მონაცემები თავი, გარდა იმისა, თუ თქვენ ხართ დრაივერის მწერლი (მაგრამ უკვე არსებობს კარგი დრაივრები PostgreSQL-ისთვის).

პასუხი #2

მე ვპოულობ გადაწყვეტილებას JSON.parse-ის გამოყენებით, მაგრამ ამის წინ ასევე საჭიროა გამოყენებული იყოს replace კონვერსიამდეც.

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