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

JS - Set multidimensional array from AJAX output

本文关键字:数组 设置 输出 AJAX JS-      更新时间:2023-09-26

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

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

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

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

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

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

提前感谢!

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

您可以很容易地通过两次拆分来完成。

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

首先用条形字符.split('|')分割字符串,得到一个由三个项目组成的数组,然后循环遍历这些项目中的每一个,再次将它们分割为值/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]});
});

你可能想多做一些安全检查,以防万一,但这是一般的想法。