如何在jquery中拆分基于变量的逗号

时间:2013-10-26 08:18:01

标签: javascript jquery ajax

我已经对java servlet进行了ajax调用,我从中检索数据并在数据成功时存储。这是我的代码......

            var s1="";
            var ticks ="";
            $('#view').click(function(evt){
                alert('hi');
                evt.preventDefault(); 
                $.ajax({
                        url:'getdata',
                        type: 'GET',
                        success: function (data) {
                              console.log(data);
                              alert(data);
                        }

                    });

            });

以下是成功数据中的值..

[239,INCOMING,30,INETCALL,7,ISD,55,LOCAL,44,STD]

现在根据我的需要,我希望这个值在变量中。

S1 = 239,30,7,55,44 抽搐= INCOMING,INETCALL,ISD,LOCAL,STD

任何帮助都将受到高度赞赏..

3 个答案:

答案 0 :(得分:0)

var parts = string.split(",")

for (i = 0, l = parts.length; i < l; i += 2) {
    $alert(parts[i]);
}

答案 1 :(得分:0)

你可以通过......

来完成它
<script src="/include/jquery.js"></script>
<script>

var data = [239, "INCOMING", 30, "INETCALL", 7, "ISD", 55, "LOCAL", 44, "STD"]; 

var s1   = [];
var tics = [];

$.each(data,function(i,val)
{ 
    if (i % 2 == 0)
    {
        s1.push(val); 
    }
    else
    {
        tics.push(val); 
    }
});

console.log('s1'); 
console.log(s1);  

console.log('----------');  

console.log('tics'); 
console.log(tics);  

</script>

第一条评论是正确的,但是......你能否将这种格式更改为更典型的JSON格式?

var data = [ "s1" : { 239, 30, 7, 55, 44 }, "tics" : { "incoming", "isd", "local", "std" } ]; 

答案 2 :(得分:0)

假设您的data变量是一个字符串,即:

"[239, INCOMING, 30, INETCALL, 7, ISD, 55, LOCAL, 44, STD]"

...然后,实现所需结果的一种方法是使用[然后]删除第一个和最后一个字符(data.slice(1,-1).split()", "给你一个这样的数组:

["239", "INCOMING", "30", "INETCALL", "7", "ISD", "55", "LOCAL", "44", "STD"]

然后将每个第二项放入不同的数组中,.join()将这些数组放入您要求的格式的字符串中:

var a = data.slice(1,-1).split(", "),
    s1 = [],
    tics = [],
    i = 0;
while (i < a.length) {
    s1.push(a[i++]);
    tics.push(a[i++]);
}
s1 = s1.join(",");
tics = tics.join(",");

我不明白为什么你想要的结果是包含逗号分隔字符串值的变量。显然我不知道你想要实现什么,但对我来说,如果s1tics是将这些值作为单独元素保存的数组更有意义(在这种情况下,您显然会省略我展示的代码末尾的.join(",")语句。但是,如果您可以更新服务器端进程以返回JSON格式,则可以返回以下内容:

{
    "s1" : [239, 30, 7, 55, 44],
    "tics" : ["INCOMING", "INETCALL", "ISD", "LOCAL", "STD"]
}

...然后jQuery将为您解析JSON,让您将其作为具有已设置为数组的属性的对象来处理。