Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关联数组不能正常工作_Javascript - Fatal编程技术网

Javascript 关联数组不能正常工作

Javascript 关联数组不能正常工作,javascript,Javascript,我有以下代码: <?php if(mysqli_num_rows($result2) >= 2){ foreach($label_name as $meal_option_id => $names_of_labels) { echo '<button price='.$protein_prices[$meal_option_id].' label_option= '.$meal_option_id.' data-label-option= '.$meal_op

我有以下代码:

<?php 
if(mysqli_num_rows($result2) >= 2){
foreach($label_name as $meal_option_id => $names_of_labels)
{
    echo '<button price='.$protein_prices[$meal_option_id].' label_option= '.$meal_option_id.'  data-label-option= '.$meal_option_id.' class="view1 white cbtn1 open_sansbold option protein-option">' .$names_of_labels. ' <span id="price-difference-for-'.$meal_option_id.'"></span></button>';
}}?>
现在项目确实包含正确的值,
用餐标签数量也包含正确的值
,但我的控制台日志是:

(1003) [undefined × 1002, Object]
我想要这个输出:

[meal_label_qty]
{
                mon: $("#qty1").val(),
                tues: $("#qty2").val(),
                wed: $("#qty3").val(),
                thur: $("#qty4").val(),
                fri: $("#qty5").val()  //WHICH IS ITEM
}

我意识到我的代码是正确的进餐标签数量和项目,但在代码行
进餐数量[进餐标签数量]=[]之后开始写入对象

JavaScript没有关联数组;它具有零索引数组和具有属性的对象。似乎存在关联数组,因为您可以使用类似的语法从对象访问属性(
obj[property]

要获得所需的输出,只需将
进餐数量
更改为对象而不是数组,或者稍微重新构造代码,将新对象推入数组而不是将其分配给索引

// add the quantity label to the item object
item.qty = meal_label_qty;

// push the whole object onto the array
meal_qty.push(item);

我做了这个
var-fine\u-label\u-qty=$(this.data(“标签选项”);//创建值为var item={mon:$(“#qty1”).val(),tues:$(“#qty2”).val(),wed:$(“#qty3”).val(),thur:$(“#qty4”).val(),fri:$(“#qty5”).val()}item.qty=餐食标签数量;进餐推送数量(项目);警报(进餐数量)
i get[object][object]索引数组将始终是一个数字“进餐标签数量”始终是一个数字,因此它应该工作
alert
只是在进餐数量对象上执行一个toString,这就是您看到
[object object]
的原因。当您登录时,我不太清楚您希望输出什么,所以我更改了var-feet_-qty={};现在我得到Object
{1001:Object,1002:Object}
我猜“Object”就是项目,我如何修复这个问题并使项目显示?如何在浏览器的控制台中显示它们?每个浏览器都有一点不同。你在用什么?如果您使用console.log记录单个对象,那么您的开发工具应该以内联方式显示属性/值。
// add the quantity label to the item object
item.qty = meal_label_qty;

// push the whole object onto the array
meal_qty.push(item);