2013-10-26 41 views
0

我已經從我在哪裏檢索數據和存儲在數據成功的Java Servlet一個Ajax調用..Here是我的代碼...如何分割一個變量基於逗號jQuery中

  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

任何幫助將高度讚賞..

+1

這看起來像使用JSON的好地方。任何機會,你可以更新另一端以JavaScript容易使用的格式返回數據? –

+0

數據的格式是什麼?它是一個對象還是字符串? –

回答

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屬性已經設置爲數組。

0
var parts = string.split(",") 

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

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" } ];