将文本文件转成json数据并输出。

文本文件格式如下:
北京 2
河北 3
河北-邯郸 301
河北-保定 302
河北-邢台 303
山东 4
山东-青岛 401
山东-烟台 402

转换成类似如下的json,我只要该结果

const treeData = [{  label: '河北',  value: '3',  key: '3',  children: [{    label: '邯郸',    value: '301',    key: '302',
  }, {    label: '保定',    value: '302',    key: '302',
  }],
}]


偶然的你
浏览 720回答 1
1回答

呼啦一阵风

没做容错, 格式必须按上面的格式var str = `北京 2河北 3河北-邯郸 301河北-保定 302河北-邢台 303山东 4山东-青岛 401山东-烟台 402`;var arrStr = str.split("\n");var result = []; arrStr.map(i => {  let = item = i.split(" ");  if (i.indexOf("-") == -1) {     result.push({      label: item[0],       value: item[1],      key: item[1],       children: []     })   } else {    let city = item[0].split("-");    let cur = result.find(j => j.label == city[0])     cur.children.push({      label: city[1],       value: item[1],      key: item[1],     })   } }) console.log(result) console.log(JSON.stringify(result))[ {"label":"北京","value":"2","key":"2","children":[]}, {"label":"河北","value":"3","key":"3","children":[     {"label":"邯郸","value":"301","key":"301"},     {"label":"保定","value":"302","key":"302"},     {"label":"邢台","value":"303","key":"303"} ]}, {"label":"山东","value":"4","key":"4","children":[     {"label":"青岛","value":"401","key":"401"},     {"label":"烟台","value":"402","key":"402"} ]} ]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript