0

我希望能够检查数组中的空条目,如果它们是空条目,则打印一条消息。

然后,当没有我想继续该程序时。

我真的看不出我做错了什么。

var mainArray:Array = new Array (6);

function addNumbers(event:MouseEvent):void
{

    userNumber1.selectable = false;
    userNumber1.type = TextFieldType.DYNAMIC;
    userNumber2.selectable = false;
    userNumber2.type = TextFieldType.DYNAMIC;
    userNumber3.selectable = false;
    userNumber3.type = TextFieldType.DYNAMIC;
    userNumber4.selectable = false;
    userNumber4.type = TextFieldType.DYNAMIC;
    userNumber5.selectable = false;
    userNumber5.type = TextFieldType.DYNAMIC;
    userNumber6.selectable = false;
    userNumber6.type = TextFieldType.DYNAMIC;


    mainArray[0] = Number(userNumber1.text);
    mainArray[1] = Number(userNumber2.text);
    mainArray[2] = Number(userNumber3.text);
    mainArray[3] = Number(userNumber4.text);
    mainArray[4] = Number(userNumber5.text);
    mainArray[5] = Number(userNumber6.text);

    noNull();
}

    function noNull()
    {
        var e;
        var noNulls:Boolean = new Boolean();
        noNulls = false;
        for (e = 0; e < 6; e++)
        {
            if (mainArray[e] == null)
            {
                genericText.text = "Make sure all boxes are filled!";
            }
            else
            {
                noNulls = true;
            }

        }

        if (noNulls == true)
        {
            duplicateCheck();
        }

    }
4

3 回答 3

2
    noNulls = true;
    for (e = 0; e < 6; e++)
    {
        if (mainArray[e] == 0)
        {
            genericText.text = "Make sure all boxes are filled!";
            noNulls = false;
            break;
        }
    }
于 2012-11-28T15:58:08.220 回答
1

如果我们不在 TextField 中输入任何值,那么“text”属性将为空字符串,而不是 NULL。

于 2012-11-28T16:03:21.397 回答
1

可能是因为将空字符串(如果文本字段为空)转换为数字会给出“0”,而将数字“0”转换为 null 会给出错误:

 var arr:Array = [];
 arr[0] = Number("");
 trace(arr[0] == null); //false

如果您键入变量,甚至不可能将 Number 与 null 进行比较:

var x:Number = Number("");
trace(x == null);   //gives a compile error

回答您的评论;设置警告文本后,您可能应该休息一下:

genericText.text = "Make sure all boxes are filled!";
break;

否则,如果下一个文本字段被正确填充,它将再次用 false 覆盖 noNulls 值。此外,无论如何都不需要检查其余字段,因为其中一个已经无效。

于 2012-11-28T16:06:48.053 回答