javascript多维数组行为异常
我正在尝试根据用户在前一个字段中的输入设置jquery自动完成输入 我有一个php脚本,它将json变量返回给这个jquery post函数。但是,我似乎无法在之后正确设置阵列 我尝试过只为数据设置一个变量,并在$.post函数之外处理数组,但仍然没有成功 我只是不确定当“父”值本身显示为null时,如何以及为什么正确地警告数组的子值javascript多维数组行为异常,javascript,jquery,json,post,multidimensional-array,Javascript,Jquery,Json,Post,Multidimensional Array,我正在尝试根据用户在前一个字段中的输入设置jquery自动完成输入 我有一个php脚本,它将json变量返回给这个jquery post函数。但是,我似乎无法在之后正确设置阵列 我尝试过只为数据设置一个变量,并在$.post函数之外处理数组,但仍然没有成功 我只是不确定当“父”值本身显示为null时,如何以及为什么正确地警告数组的子值 function populateMetrics(light_id){ var availableMetrics = []; $.post(
function populateMetrics(light_id){
var availableMetrics = [];
$.post(
"getLightMetrics.php",
{
light_id: light_id,
},
function(data) {
$.each(data, function(index, item){
alert(index); //correct index
availableMetrics[index] = [];
availableMetrics[index]['value'] = item.benchmark_id;
alert(availableMetrics[index]['value']); //correct value
alert(availableMetrics[index]); //null?
availableMetrics[index]['label'] = item.benchmark_variant + "-" + item.benchmark_metric;
alert(availableMetrics[index]['label']); //correct
alert(item.benchmark_id + " = " + item.benchmark_variant + "-" + item.benchmark_metric);
alert(availableMetrics[index]); //still null
});
alert(availableMetrics); //all null, but correct amount
$( "#metric" ).autocomplete({
source: availableMetrics,
focus: function( event, ui ) {
$( "#metric" ).val( ui.item.label );
return false;
},
select: function( event, ui ) {
$( "#metric" ).val( ui.item.label );
$( "#metric_id" ).val( ui.item.value );
return false;
}
});
},
"json"
);
}
JavaScript中的多维数组只能有基于整数的索引。它们不像PHP中的关联数组那样工作 您要查找的代码可能是
var availableMetrics = [];
$.each(data, function(index, item) {
availableMetrics[index] = {
value: item.benchmark_id,
label: item.benchmark_variant + "-" + item.benchmark_metric
};
});
这将创建具有值
和标签
属性的对象数组。然后,您可以使用以下任一符号从数组中检索值:
availableMetrics[index]['value'];
availableMetrics[index].value;
仅供参考,不要使用警报来调试代码,请使用您的控制台。但你的意思是:
alert(availableMetrics[index])代码>显示null
?null
和空值之间存在差异,只是说它工作得很好,但是我使用了我在页面另一部分上面展示的相同技术。它工作了,但是它不在$.post函数中