不太确定我是否正确行事。它看起来比它需要的更复杂。但我试图从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.
}));
}
});
};
});
答案 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
函数,并按照我的描述使用它。