JS-从AJAX输出设置多维数组
JS - Set multidimensional array from AJAX output
假设我从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]});
});
你可能想多做一些安全检查,以防万一,但这是一般的想法。
相关文章:
- 需要帮助设置json数组
- 数组在递归方法中设置为null
- 在for循环中使用多维数组设置google.maps.Marker图标
- Jquery数组-设置和加载值
- 通过过滤器数组设置对象数组的属性
- 如何将对象数组设置为格式为 { x: {Number}, y: {Number} }?Javascript
- 如何使用 AJAX 在 jquery 中将返回的 JSON 数组设置为变量
- 关联数组设置不正确
- 尝试将数据数组设置为从视图调用函数后$scope
- Javascript 截距数组设置值
- Javascript 将数组设置为另一个数组元素的属性
- 为什么调用array.prototype. foreach .call()时将数组设置为THIS对象不能工作?
- 使用Json数组设置折线路径
- 从数组设置Google电子表格单元格值,但所有值都是相同的
- 使用统一数组设置批处理顶点数组的alpha值
- 如何将整数数组设置为电子表格单元格
- 在mark.js中为单独的单词数组设置样式
- 在Javascript中将数组设置为json格式的值
- 有没有一种方法可以将类型化数组设置为零
- 我无法基于数组设置背景图像