0

我正在创建一个 JavaScript 数组是以下方式:

var selectedColors= { 'Orange' : $("#Orange").val(),
                         'Light Blue' : $("#LightBlue").val(),
                         'Dark Red' : $("#DarkRed").val(),
                         'Dark Blue' : $("#DarkBlue").val()};

然后循环遍历每个项目,看看哪个颜色没有被选中,然后将它们存储在另一个数组中:

var colorsNotSelected = [];
$.each(selectedColors, function (key, value) {
    if (value.length == 0)
        colorsNotSelected.push({key:key});
});

在这里,我想显示未选择的颜色,但按以下方式显示键:0,1,2,3 而不是橙色,浅蓝色,深红色,深蓝色。

我在这里做错了什么?

if (colorsNotSelected.length > 0)
    $.each(colorsNotSelected, function (key) { alert(key) });
    return false;

任何帮助深表感谢。

4

2 回答 2

1

对象和数组将在 jQuery 中进行相同的迭代。看来您需要使用大括号来检查该 return false 语句:

if (colorsNotSelected.length > 0) {
    $.each(colorsNotSelected, function (key) { alert(key) });
    return false;
}

这是不必要的:

colorsNotSelected.push({key:key});

只需这样做:

colorsNotSelected.push(key);

这也假设在您的示例代码上方的某个地方您有这个:

var colorsNotSelected = [];
于 2012-11-02T21:24:44.180 回答
0

您可能想尝试使用 for / in 循环:

for(var i in colorsNotSelected){
   alert(i);
}
于 2012-11-02T21:27:52.240 回答