2015-02-17 68 views
1

我很難將其轉換爲正確的格式。從ajax創建數組請致電

我有這樣的:

$.ajax({ 
      url: 'att_count_2.php', 
      type: 'GET', 
      dataType: 'JSON', 
      data: allvars[0], 
      success: function(data) { 

       var export_data = []; 
       $('#export').click(function() { 
       $.each(data, function (key, value) { 
       var export_data = value.exuid; 
       console.log(export_data); 
       //var final_one = export_data.join(",") 

       }); 
     }); 

的執行console.log給我每一個行符合我條件的exuid秒。像這樣:

9a2234e4-cfc8-47da-b03a-0ed52e80f0e2 
4d06e206-261b-4774-b553-6785f13cd64e 
1ec1c7ea-85f4-4ba4-ab70-bf1e56cf9bd2 

This works great。不過,我需要的是這樣的:

Uncaught TypeError: undefined is not a function

我在做什麼錯在這裏:

[9a2234e4-cfc8-47da-b03a-0ed52e80f0e2,4d06e206-261b-4774-b553-6785f13cd64e,1ec1c7ea-85f4-4ba4-ab70-bf1e56cf9bd2] 

如果我取消了join聲明我在上面,它拋出一個錯誤?

回答

2

註釋掉的代碼試圖調用string對象的join方法,該對象不存在(或更確切地說是undefined),因此會收到您收到的錯誤消息。

當試圖追加數據到一個數組,你需要使用push像這樣,說

var export_data = value.exuid; 

你每次重新分配你的export_data陣列

success: function(data) { 
      ... 
      var export_data = []; 
      $('#export').click(function() { 
      $.each(data, function (key, value) { 
       export_data.push(value.exuid); 
      }); 
    }); 
+0

謝謝。這是完美的,但我現在意識到我需要這個格式: '[ 「q9a2234e4-cfc8-47da-b03a-0ed52e80f0e2」],[ 「4d06e206-261b-4774-b553-6785f13cd64e」]]' 如何我可以改變你的代碼來得到這個嗎? – jonmrich 2015-02-18 01:27:18

+0

沒關係......知道了!更改爲:'export_data.push([value.exuid]);' – jonmrich 2015-02-18 01:35:34

+0

@jonmrich不客氣,很高興聽到您已經明白自己的想法,這通常是我學習的最佳方式。 – 2015-02-18 02:44:46

1

。 你想要做什麼是添加元素的數組export_data像這樣:

export_data.push(value.exuid); 
2

可以使用map方法從每個項目都歸到一個新的數組:

$('#export').click(function() { 
    var final_one = $.map(data, function (value) { 
    return value.exuid; 
    }); 
    // use final_one 
});