JS - 从AJAX输出设置多维数组

时间:2013-08-01 01:33:41

标签: javascript jquery split

假设我从jQuery Ajax输出中收到一些数据。

var tags = call_ajax('order/get_data', 'user_id=' + $('#user_id').val());

来自 PHP 文件的输出字符串如下:

echo "Aldi:01|Andi:02|Martin:03";

所以我的问题是,如何.split()输出的字符串(tags)变为 JS数组,格式如下:

var source: [
                {'value' : 'Aldi', 'id' : '01'},
                {'value' : 'Andi', 'id' : '02'},
                {'value' : 'Martin', 'id' : '03'}
            ]

提前致谢!

4 个答案:

答案 0 :(得分:2)

使用Array map method

var source = tags.split("|") // first split by `|`
  .map(function(tag) {
    // then construct the object for each part
    var parts = tag.split(":");
    return { value: parts[0], id: parts[1] };
  });

答案 1 :(得分:1)

你可以很容易地用两个分割来做到这一点。

var s = 'Aldi:01|Andi:02|Martin:03', 
    parts = s.split('|'), 
    source = [];

for( var i = 0, l = parts.length; i < l; i++ ){
  var part = parts[i].split(':');
  source.push({ value: part[0], id: part[1] });
}

答案 2 :(得分:1)

var output = 'Aldi:01|Andi:02|Martin:03';
var data = output.split('|');
var source = new Array();

for(var key in data){
    var temp = data[key].split(':');
    source[key] = {'value':temp[0],'id':temp[1]};
}

使用,

for(var key in source){
    alert(source[key]['value']);
    alert(source[key]['id']);
}

答案 3 :(得分:0)

首先用条形字符.split('|')分割字符串,得到一个包含三个项目的数组,然后遍历每个项目并再次将它们拆分为值/ id对,并将其放入最终数组。 / p>

var responseEcho; // assume this is your response from the server.
var myArray = responseEcho.split('|');
var finalArray = [];
myArray.forEach(function(data) {
  var dataArray = data.split(':');
  finalArray.push({'value': dataArray[0], 'id': dataArray[1]});
});

您可能希望包含更多安全检查以防万一,但这是一般的想法。