如何在jquery中将一个arraylist分成两个变量

时间:2013-11-07 07:44:42

标签: javascript jquery for-loop arraylist

我正在使用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) {

            }
        }
    });
});    

请伙计们帮助我。 提前谢谢。

3 个答案:

答案 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

Demo

答案 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 );