Мне нужно преобразовать специально отформатированную строку в массив JavaScript - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь преобразовать форматированную строку в многомерный массив JavaScript.

Я пробовал функции split() и push(), но ни одна из них не работает. Формат должен быть уже правильным, но я не могу понять, как преобразовать строку в массив.

Вот строка:

[[24297, 'CWCS Sump 002', -121.50842, 38.54798, '2', 'SEWER SUMP'],[8035, 'CWCS Sump 002A (56)', -121.50842, 38.54798, '2A', 'SEWER SUMP'],[9334, 'CWCS Sump 001', -121.5110297, 38.5703431, '1', 'SEWER SUMP']]

Мне просто нужен массив JavaScript размером 3х6 (если я посчитал это правильно) из этой строки. Количество строк будет варьироваться.

Ответы [ 3 ]

1 голос
/ 16 мая 2019

Это хороший кандидат на JSON.parse;однако, одиночные кавычки должны быть преобразованы в двойные кавычки, прежде чем это сработает.Осторожно избегая кавычек, вы можете попробовать:

const raw = `[[24297, 'CWCS Sump 002', -121.50842, 38.54798, '2', 'SEWER SUMP'],[8035, 'CWCS Sump 002A (56)', -121.50842, 38.54798, '2A', 'SEWER SUMP'],[9334, 'CWCS Sump 001', -121.5110297, 38.5703431, '1', 'SEWER SUMP']]`;

const res = JSON.parse(raw.replace(/(?<!\\)'/g, `"`));
console.log(res);
1 голос
/ 16 мая 2019

Вы можете сделать это с помощью JSON.parse как:

let str = '[[24297, "CWCS Sump 002", -121.50842, 38.54798, "2", "SEWER SUMP"],[8035, "CWCS Sump 002A (56)", -121.50842, 38.54798, "2A", "SEWER SUMP"]]';

let arr = JSON.parse(str);

Обратите внимание, что лучше иметь ' вокруг всей строки и " вокруг строки внутри.Можно сделать это с помощью:

str.replace("'", """);
0 голосов
/ 16 мая 2019

По мне, это не будет прямо вперед.Вы можете попробовать вот так.

let a = "[
    [24297,'CWCS Sump 002',-121.50842, 38.54798,'2','SEWER SUMP'],
    [8035,'CWCS Sump 002A (56)',-121.50842,38.54798,'2A','SEWER SUMP'],
    [9334,'CWCS Sump 001', -121.5110297,38.5703431,'1','SEWER SUMP']
]";
let c= [];

a.replace('[[','').replace(']]','').split('],[').forEach(
    (x)=>{c.push(x.split(','))}
);
//c is the result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...