Javascript 测试空数组不工作
Javascript test for null array not working
我正在使用具有 Javascript ES5 的工具。我正在尝试通过 if 条件测试数组是否为空。 if 之前数组的输出表明它的“null”(见下面的测试结果);但是,当对“null”进行 if 条件检查时,它认为它应该在不应该继续处理的时候继续处理。我已经通过 if 语句以各种方式检查了一个空数组,它仍然通过了测试并由于空数组值而中止,因为当我转储调试数据并在数组上指定 [_OFNBRindex](当前已注释掉)时。”。 =12=]
前两条语句用于测试代码。 1).一个空字符串,(给出问题的字符串),2),一个编号列表。编号列表将起作用。此外,指定“[_OFNBRindex]”的注释掉的语句也会出错。
对于将停止空数组以便它们使用 'else' 语句的 IF 条件,我缺少什么?
var _OFNBR = ""; // test value #1
// var _OFNBR = "100\n2\n\n40"; // test value #2
var _OFNBRindex = 0;
_OFNBR = _OFNBR.replace(/^[ \r\n\v\t\f\uFEFF\xA0]+|[ \r\n\v\t\f\uFEFF\xA0]+$/gi, "");
var _OFNBRLst = _OFNBR.match(/[0-9]+/g);
var _debug_text_msg = "Info: The DATA DUMP ref code: " + "idx " + "\"" + _OFNBRindex + "\"" + "\"" + _OFNBRLst + "\"";
java.lang.System.out.println(_debug_text_msg);
if ((_OFNBRLst !== undefined) || (_OFNBRLst !== "null") || (_OFNBRLst !== "") || (_OFNBRLst !== null)) {
var _debug_text_msg = "Info: The NOT NULL ref code: " + "idx " + "\"" + _OFNBRindex + "\"" + "\"" + _OFNBRLst + "\"";
//var _debug_text_msg = "Info: The NOT NULL ref code: " + "idx " + "\"" + _OFNBRindex + "\"" + "\"" + _OFNBRLst[_OFNbrindex] + "\"";
java.lang.System.out.println(_debug_text_msg);
} else { // OFNBRLst is null, set to null
var _debug_text_msg = "Info: The IS NULL ref code: " + "idx " + "\"" + _OFNBRindex + "\"" + "\"" + _OFNBRLst + "\"";
java.lang.System.out.println(_debug_text_msg);
} // end if for OFNBRLst being null
_OFNBRindex++; // increment the _OFNBR index list.
// results
// First statement test #1
// Info: The DATA DUMP ref code: idx "0""null"
// Info: The NOT NULL ref code: idx "0""null"
// Second statement test #1
// Info: The DATA DUMP ref code: idx "0""100,2,40"
// Info: The NOT NULL ref code: idx "0""100,2,40"
看起来您只有一些 OR,而您 需要 AND(如果您需要其他 !==
检查)。但是,您使用的 String.protoype.match 的 return 值是数组(如果找到匹配)或 null
。因此,您不需要任何 !==
字符串检查。
因此更改此行:
if ((_OFNBRLst !== undefined) || (_OFNBRLst !== "null") || (_OFNBRLst !== "") || (_OFNBRLst !== null)) {
对此:
if (_OFNBRLst !== null) {
我正在使用具有 Javascript ES5 的工具。我正在尝试通过 if 条件测试数组是否为空。 if 之前数组的输出表明它的“null”(见下面的测试结果);但是,当对“null”进行 if 条件检查时,它认为它应该在不应该继续处理的时候继续处理。我已经通过 if 语句以各种方式检查了一个空数组,它仍然通过了测试并由于空数组值而中止,因为当我转储调试数据并在数组上指定 [_OFNBRindex](当前已注释掉)时。”。 =12=]
前两条语句用于测试代码。 1).一个空字符串,(给出问题的字符串),2),一个编号列表。编号列表将起作用。此外,指定“[_OFNBRindex]”的注释掉的语句也会出错。
对于将停止空数组以便它们使用 'else' 语句的 IF 条件,我缺少什么?
var _OFNBR = ""; // test value #1
// var _OFNBR = "100\n2\n\n40"; // test value #2
var _OFNBRindex = 0;
_OFNBR = _OFNBR.replace(/^[ \r\n\v\t\f\uFEFF\xA0]+|[ \r\n\v\t\f\uFEFF\xA0]+$/gi, "");
var _OFNBRLst = _OFNBR.match(/[0-9]+/g);
var _debug_text_msg = "Info: The DATA DUMP ref code: " + "idx " + "\"" + _OFNBRindex + "\"" + "\"" + _OFNBRLst + "\"";
java.lang.System.out.println(_debug_text_msg);
if ((_OFNBRLst !== undefined) || (_OFNBRLst !== "null") || (_OFNBRLst !== "") || (_OFNBRLst !== null)) {
var _debug_text_msg = "Info: The NOT NULL ref code: " + "idx " + "\"" + _OFNBRindex + "\"" + "\"" + _OFNBRLst + "\"";
//var _debug_text_msg = "Info: The NOT NULL ref code: " + "idx " + "\"" + _OFNBRindex + "\"" + "\"" + _OFNBRLst[_OFNbrindex] + "\"";
java.lang.System.out.println(_debug_text_msg);
} else { // OFNBRLst is null, set to null
var _debug_text_msg = "Info: The IS NULL ref code: " + "idx " + "\"" + _OFNBRindex + "\"" + "\"" + _OFNBRLst + "\"";
java.lang.System.out.println(_debug_text_msg);
} // end if for OFNBRLst being null
_OFNBRindex++; // increment the _OFNBR index list.
// results
// First statement test #1
// Info: The DATA DUMP ref code: idx "0""null"
// Info: The NOT NULL ref code: idx "0""null"
// Second statement test #1
// Info: The DATA DUMP ref code: idx "0""100,2,40"
// Info: The NOT NULL ref code: idx "0""100,2,40"
看起来您只有一些 OR,而您 需要 AND(如果您需要其他 !==
检查)。但是,您使用的 String.protoype.match 的 return 值是数组(如果找到匹配)或 null
。因此,您不需要任何 !==
字符串检查。
因此更改此行:
if ((_OFNBRLst !== undefined) || (_OFNBRLst !== "null") || (_OFNBRLst !== "") || (_OFNBRLst !== null)) {
对此:
if (_OFNBRLst !== null) {