0

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

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

从PHP文件中输出的字符串是这样的:

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

所以我的问题是,如何将.split()输出的 string( tags) 变成JS 数组,格式如下:

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

提前致谢!

4

4 回答 4

2

使用数组map方法

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] };
  });
于 2013-08-01T01:49:29.950 回答
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] });
}
于 2013-08-01T01:47:23.363 回答
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']);
}
于 2013-08-01T01:49:32.700 回答
0

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

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

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

于 2013-08-01T01:42:39.720 回答