假设我从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'}
]
提前致谢!
答案 0 :(得分:2)
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]});
});
您可能希望包含更多安全检查以防万一,但这是一般的想法。