猿问

我需要将特殊格式的字符串转换为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数组(如果我算得那么正确)。行数会有所不同。


手掌心
浏览 580回答 3
3回答

哆啦的时光机

这是JSON.parse的一个很好的候选者;&nbsp;但是,单引号应该在它起作用之前转换为双引号。小心转义报价,你可以尝试: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("'", """);

慕的地8271018

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

相关分类

JavaScript
我要回答