如何在jquery中将数组列表分解为两个变量

How to break a arraylist into two variables in jquery

本文关键字:变量 两个 分解 列表 jquery 数组      更新时间:2023-09-26

我正在使用ajax调用从服务器端检索值,这是从服务器端检索的arraylist的格式。

[传入,0,INETCALL,0,ISD,31.8,本地,197.92,STD,73.2]

现在根据我的需要,我必须像这样将这个数组列表分解为两个变量。

var toc=INCOMING,INETCALL,ISD,LOCAL,STD

var 调用成本=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) {
            }
        }
    });
});    

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

尝试使用 $.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

演示

首先,数据似乎已经是一个数组,只需使用

var array = JSON.parse(data);

或者,如果您也可以控制服务器端代码,请使其返回 json 数据而不是纯文本。这样,当它传递到回调中时,它是一个可以使用的数组!

如果要在循环中获取所有数字,请使用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]);
   }
}

检查这个小提琴 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 );