我正在使用ajax调用从服务器端检索值,这里是从服务器端检索到的arraylist的格式。
[INCOMING,0,INETCALL,0,ISD,31.8,LOCAL,197.92,STD,73.2]
现在根据我的需要,我必须在这两个变量中打破这个arraylist ..
var toc = INCOMING,INETCALL,ISD,LOCAL,STD
var callcost = 0,0,31.8,197.92,73.2
我正在尝试使用for循环,但我没有得到确切的逻辑...
这是我的代码..
$(function () {
$.ajax({
type: 'GET',
url: 'getdata',
async: false,
dataType: "text",
success: function (data) {
var values = [];
values = data;
values = values.replace('[', '');
values = values.replace(']', '');
var array = values.split(",");
for (var i in array) {
}
}
});
});
请伙计们帮助我。 提前谢谢。
答案 0 :(得分:1)
尝试使用$.isNumeric()之类的,
var arr=['INCOMING',0,'INETCALL',0,'ISD',31.8,'LOCAL',197.92,'STD',73.2];
var str=[],
num=[];
for(var i=0,len=arr.length;i<len;i++){
$.isNumeric(arr[i]) ? num.push(arr[i]) : str.push(arr[i]);
}
console.log(num);// returns array of numbers use num.join(',') to get string
console.log(str);// returns array of string use str.join(',') to get string
答案 1 :(得分:1)
首先,数据似乎已经是一个数组,只需用
解析它var array = JSON.parse(data);
或者,如果您也可以控制服务器端代码,则使其返回json-data而不是纯文本。这样它的数组就可以在传入回调时使用了!
如果你想获得循环中的所有数字,请使用isNumeric,如果是其他数据,则在索引上执行%1,即:
var a1 = [];
var a2 = [];
for(var i=0;i<array.length;i++){
if(i % 1 == 0){
a1.push(array[i]);
} else {
a2.push(array[i]);
}
}
答案 2 :(得分:0)
检查这个小提琴http://jsfiddle.net/2sGjZ/
var myArray = ['INCOMING','0','INETCALL','0','ISD','31.8','LOCAL','197.92','STD','73.2'];
var tocArr = new Array();
var callcostArr = new Array();
var j = 0; var k= 0;
for ( var i = 0; i < myArray.length; i = i + 1 ) {
if(i % 2 == 1){
tocArr[j] = myArray[ i ];
j++;
}else{
callcostArr[k] = myArray[ i ];
k++;
}
}
var toc = tocArr.toString();
var callcost = callcostArr.toString();
alert( toc );
alert( callcost );