繁体   English   中英

JavaScript中的小迭代

[英]Small iteration in javascript

嗨,我有一个小问题。

有人可以告诉我如何将这个字符串分成json格式的数据吗?

one:apple;two:orange;three:bananna;four:pears

看起来像这样

{
  one: apple,
  two: orange,
  three: bananna,
  four: pears
}

String#split使用Array#forEach

 var str = "one:apple;two:orange;three:bananna;four:pears"; var obj = {}; str.split(';').forEach(function(el) { var x = el.split(':'); obj[x[0]] = x[1]; }); console.log(obj); 

或使用Array#reduce

comma operator评估每个操作数(从左到右)并返回最后一个操作数的值。

 var str = "one:apple;two:orange;three:bananna;four:pears"; var obj = str.split(';').reduce(function(a, b) { var x = b.split(':'); return a[x[0]] = x[1], a; }, {}); console.log(obj); 

演示

var str = "one:apple;two:orange;three:bananna;four:pears";
var arr = str.split(';'), obj = {}, i = 0;
for(; i < arr.length; i++){
  var x = arr[i].split(':');
  obj[x[0]] = x[1]
};
console.log(obj);
x = null;

// thanks to @Rayon for edit

您可以使用正则表达式来执行此操作。

 var str = "one:apple;two:orange;three:bananna;four:pears" var obj = '{"'+ str.replace(/;/g, ',').replace(/[:+,]/g, '"$&"') + '"}' console.log(JSON.parse(obj)) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM