繁体   English   中英

将字符串转换为对象数组

[英]Turn string into array of objects

我想用“ |”将字符串溢出 和':',最后得到一个在数组内部具有键值关系的对象。

看起来像这样

[{key1 : red, key2 : five},{key1 : blue, key2 : six},{key1 : yellow, key2 : nine}, {key1 : black, key2 :ten}]

这就是我到目前为止

var  x = "red:five|blue:six|yellow:nine|black:ten"
     datesArray = [],  
     datesObj = {}, 
     keys = ['key1','key2'],
     dates = x.split('|');

for (var i = 0; i < dates.length; i++) { 
    datesArray.push(dates[i].split(':'));
}

for(var x = 0; x < datesArray.length; x++){
    datesObj[keys[0]] = datesArray[x][0]
    datesObj[keys[1]] = datesArray[x][1]
}

console.log(datesObj);

http://jsfiddle.net/zPS7h/4/

任何帮助表示赞赏!

像这样吗

http://jsfiddle.net/zPS7h/15/

var x = "red:five|blue:six|yellow:nine|black:grey";

var  datesArray = [],
     keys = ['key1','key2'],
     dates = x.split('|');

for (var i = 0; i < dates.length; i++) {
    var values = dates[i].split(':');
    var dateObj = { keys[0]: values[0], keys[1]: values[1] };
    datesArray.push(dateObj);
}

console.log(datesArray);

这样的事情会起作用:

s = "red:five|blue:six|yellow:nine|black:ten";
groups = s.split("|");
result = {};
for (i = 0; i < groups.length; i++) {
  t = groups[i].split(":");
  result[i] = { "key1": t[0], "key2": t[1] };
}
console.log(result);
var  x = "red:five|blue:six|yellow:nine|black:ten"
     datesArray = [],  
     datesObj = {}, 
     keys = ['key1','key2'],
     dates = x.split('|');

for (var i = 0; i < dates.length; i++) { 
    datesArray.push(dates[i].split(':'));
}

var arr = [];

for(var x = 0; x < datesArray.length; x++){
    datesObj[keys[0]] = datesArray[x][0]
    datesObj[keys[1]] = datesArray[x][1]
    arr.push(datesObj);
}

console.log(arr);

在ECMA5中,您可以使用Array.prototype.map执行类似的操作。

使用Javascript

var x = 'red:five|blue:six|yellow:nine|black:ten',
    y = x.split('|').map(function (group) {
        var vals = group.split(':');

        return {
            key1: vals.shift(),
            key2: vals.shift()
        };
    });

console.log(JSON.stringify(y));

产量

[{"key1":"red","key2":"five"},{"key1":"blue","key2":"six"},{"key1":"yellow","key2":"nine"},{"key1":"black","key2":"ten"}] 

jsFiddle上

暂无
暂无

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

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