2015-02-17 69 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 
});