【问题标题】:How to break a arraylist into two variables in jquery如何在jquery中将arraylist分成两个变量
【发布时间】:2023-03-27 03:49:01
【问题描述】:

我正在使用 ajax 调用从服务器端检索值,这是从服务器端检索到的数组列表的格式。

[INCOMING,0,INETCALL,0,ISD,31.8,LOCAL,197.92,STD,73.2]

现在根据我的需要,我必须将这个数组列表分成两个这样的变量..

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) {

            }
        }
    });
});    

请大家帮帮我。 提前致谢。

【问题讨论】:

  • 为什么要替换/拆分调用?已经是数组了! :P
  • 仅供参考,您使用的是 array,而不是 ArrayList...

标签: javascript jquery for-loop arraylist


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    尽量用$.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

    【讨论】:

    【解决方案3】:

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

    解析它
    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]);
       }
    }
    

    【讨论】:

    • 我会从这个答案中获取一些,从 Rohan Kumar 那里获取一些,isNumeric 很有帮助。
    • 当然,如果它是他想要的数组之一而不是其他数组中的数字,那么问题中没有这么说! =)
    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 2021-12-03
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 2013-11-16
    相关资源
    最近更新 更多