javascript - 将字符串拆分为JS中的对象

标签 javascript

我从这样的服务器得到响应:

3S1,https://lekcjaplus.vulcan.net.pl
TA1,https://uonetplus-komunikacja.umt.tarnow.pl
OP1,https://uonetplus-komunikacja.eszkola.opolskie.pl
RZ1,https://uonetplus-komunikacja.resman.pl
GD1,https://uonetplus-komunikacja.edu.gdansk.pl
P03,https://efeb-komunikacja-pro-efebmobile.pro.vulcan.pl
P01,http://efeb-komunikacja.pro-hudson.win.vulcan.pl
P02,http://efeb-komunikacja.pro-hudsonrc.win.vulcan.pl
P90,http://efeb-komunikacja-pro-mwujakowska.neo.win.vulcan.pl

我想把它转换成这样的对象:

"3S1": "https://lekcjaplus.vulcan.net.pl",
"TA1": "https://uonetplus-komunikacja.umt.tarnow.pl",
"OP1": "https://uonetplus-komunikacja.eszkola.opolskie.pl",
"RZ1": "https://uonetplus-komunikacja.resman.pl",
"GD1": "https://uonetplus-komunikacja.edu.gdansk.pl",
"P03": "https://efeb-komunikacja-pro-efebmobile.pro.vulcan.pl",
"P01": "http://efeb-komunikacja.pro-hudson.win.vulcan.pl",
"P02": "http://efeb-komunikacja.pro-hudsonrc.win.vulcan.pl",
"P90": "http://efeb-komunikacja-pro-mwujakowska.neo.win.vulcan.pl"

实现此目标的最简单方法是什么?

最佳答案

您可以拆分换行并使用reduce

let str = `3S1,https://lekcjaplus.vulcan.net.pl
	TA1,https://uonetplus-komunikacja.umt.tarnow.pl
	OP1,https://uonetplus-komunikacja.eszkola.opolskie.pl
	RZ1,https://uonetplus-komunikacja.resman.pl
	GD1,https://uonetplus-komunikacja.edu.gdansk.pl
	P03,https://efeb-komunikacja-pro-efebmobile.pro.vulcan.pl
	P01,http://efeb-komunikacja.pro-hudson.win.vulcan.pl
	P02,http://efeb-komunikacja.pro-hudsonrc.win.vulcan.pl
	P90,http://efeb-komunikacja-pro-mwujakowska.neo.win.vulcan.pl`;

let result = str.split(/\n/).reduce((c, v) => {
  if( v.trim() !== '' ) {
       let [k, o] = v.trim().split(',');
       c[k] = o;
  }
  return c;
}, {});

console.log(result);

如果每行有多个,,您可以解构数组并join(',')

let result = str.split(/\n/).reduce((c,v)=>{
    if( v.trim() ) {
        let [k,...o] = v.trim().split(',');
        c[k] = o.join(',');
    }
    return c;
},{});

关于javascript - 将字符串拆分为JS中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50272971/

相关文章:

javascript - 选择单选按钮的值 Selected 并显示在另一个 div 中或转发回另一个 PHP

javascript - 如何保存缩进的 MSXML2.DomDocument? (我认为它使用 MXXMLWriter)

javascript - 从父窗口获取 iframe 中文本框的值

javascript - 在可排序的 JQuery UI 列表中至少保留一项

javascript - Req.headers.cookie 为空,即使请求 header 中有 cookie

javascript - 通过 jQuery 或 JS 打开或重定向到 Base64 DataURL

javascript - 同一页面上有两个不同的 Colorbox 弹出窗口单独设置?

JavaScript - 使用数组原型(prototype)方法从以下数组中删除索引

javascript - 如何在 AngularJS 中为 $http promise 创建单元测试

javascript - 设置选择菜单的选定值