我需要将特殊格式的字符串转换为 javascript 数组

我正在尝试将格式化字符串转换为 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']]

我只想要一个来自该字符串的 3x6(如果我算对了)的 JavaScript 数组。行数会有所不同。


aluckdog
浏览 168回答 3
3回答

当年话下

这是 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);

紫衣仙女

你可以用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("'", """);

沧海一幻觉

据我说这不会是直接的。你可以这样试试。let a = "[&nbsp; &nbsp; [24297,'CWCS Sump 002',-121.50842, 38.54798,'2','SEWER SUMP'],&nbsp; &nbsp; [8035,'CWCS Sump 002A (56)',-121.50842,38.54798,'2A','SEWER SUMP'],&nbsp; &nbsp; [9334,'CWCS Sump 001', -121.5110297,38.5703431,'1','SEWER SUMP']]";let c= [];a.replace('[[','').replace(']]','').split('],[').forEach(&nbsp; &nbsp; (x)=>{c.push(x.split(','))});//c is the result
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript