从ajax调用创建数组

时间:2015-02-17 23:57:38

标签: jquery arrays 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  

这很有效。但是,我需要的是:

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

如果我取消注释上面的join语句,则会抛出错误:

Uncaught TypeError: undefined is not a function

我在这里做错了什么?

3 个答案:

答案 0 :(得分:2)

注释掉的代码试图在join对象上调用string方法,该方法不存在(或者更确切地说是undefined),因此会收到您收到的错误消息。

当尝试将追加数据添加到数组时,您需要使用push之类的,

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

答案 1 :(得分:2)

您可以使用map方法将每个项目的属性转换为新数组:

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

答案 2 :(得分:1)

var export_data = value.exuid;

您每次都要重新分配您的export_data数组。 你想要做的是将元素添加到export_data数组,如下所示:

export_data.push(value.exuid);