为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

手掌心 2019-04-24 18:19:06
我正在尝试将格式化的字符串转换为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数组(如果我算得那么正确)。行数会有所不同。
查看完整描述

3 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

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


查看完整回答
反对 回复 2019-05-17
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

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


查看完整回答
反对 回复 2019-05-17
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

据我说,它不会直截了当。你可以这样试试。

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


查看完整回答
反对 回复 2019-05-17
  • 3 回答
  • 0 关注
  • 579 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信