如何命名返回的数组?

时间:2012-04-03 10:07:54

标签: javascript jquery ajax json

不太确定我是否正确行事。它看起来比它需要的更复杂。但我试图从json数组中提取一段特定的数据。我需要此数据片段的几个功能,然后我需要使用return,标记return,并将其传递给成功调用底部的方法。

$(document).ready(function() {
  if ( window.location.href.match(/customer_number/).length > 0) {

    $customer_id = window.location.href.split(/customer_number=/)[1];

    $.ajax({
      url: '/customers/filter.json',
      data: { id: $customer_id },
      dataType: 'json',
      success: function(data) {
        response($.map(data, function(row) {
          return {
            value: row.customer.name,
            customer_number: row.customer.customer_number,
            id: row.customer.id,
            name: row.customer.name,
            phone_number: row.customer.phone_number,
            email: row.customer.email,
            service_address: row.customer.service_address,
            service_city: row.customer.service_city,
            service_state: row.customer.service_state,
            service_zip_code: row.customer.service_zip_code,
            billing_adress: row.customer.billing_address,
            billing_city: row.customer.billing_city,
            billing_state: row.customer.billing_state,
            billing_zip_code: row.customer.billing_zip_code,
            primary_contact_name: row.customer.primary_contact ? row.customer.primary_contact.first_name + ' ' + row.customer.primary_contact.last_name : ''
          };
          render_customer(name_of_return);
          //                  ^^ Not sure how to label that return into an object.
        }));
      }
    });
  };
});

3 个答案:

答案 0 :(得分:2)

您将返回的对象传递回$.map处理迭代函数的返回值(它在数组中构建这些值),然后将该数组传递到{{1}功能。在JavaScript中,当您调用函数(或从一个函数返回一个值)时,您不会给出参数/返回值名称。在论证的情况下,它完全是位置的。 (函数定义可以为它们指定名称,但是在调用它们时则不会。)在返回值的情况下,只有一个。

答案 1 :(得分:1)

你尝试过这个吗?将对象存储在变量中并将其传递给该函数。

var yourObject = {
                value: row.customer.name,
                customer_number: row.customer.customer_number,
                id: row.customer.id,
                name: row.customer.name,
                phone_number: row.customer.phone_number,
                email: row.customer.email,
                service_address: row.customer.service_address,
                service_city: row.customer.service_city,
                service_state: row.customer.service_state,
                service_zip_code: row.customer.service_zip_code,
                billing_adress: row.customer.billing_address,
                billing_city: row.customer.billing_city,
                billing_state: row.customer.billing_state,
                billing_zip_code: row.customer.billing_zip_code,
                primary_contact_name: row.customer.primary_contact ? row.customer.primary_contact.first_name + ' ' + row.customer.primary_contact.last_name : ''
              };
    render_customer(yourObject);

答案 2 :(得分:0)

当您返回某些内容时,该方法将停止运行。在此之后,您无法运行任何代码。

您应该创建一个数组或一个对象,并将所需的所有值放在那里。

你可以通过制作这样的对象来做到这一点:

var return_var = {};

当您想要向此数组添加内容时,只需使用以下对象语法:

return_var.key = value;

现在您可以将对象返回或传递给函数,并像这样使用它:

alert(array.key);

编辑:

我发现你确实已经有了一个对象,所以你可以将return传递给你的render_customer函数,并按照我的描述使用它。