javascript中的小迭代

Small iteration in javascript

本文关键字:迭代 javascript      更新时间:2023-09-26

大家好,我有个小问题。

有人能告诉我如何我将能够把这个字符串成json格式的数据?

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

看起来像这样

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

使用 Array#forEach / String#split

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

DEMO

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))