【发布时间】:2018-06-28 08:48:28
【问题描述】:
我有一个代码,它从用户输入的输入字段中获取一些值。我的 JS 代码应该检查所有必需的标题是否不为空。如果没有,它应该显示带有结果的alert 消息。这是我的代码
var result = "";
function isStringEmpty(string2Check)
{
return string2Check == "" || string2Check[0] == " ";
};
var titles =
[
["1", "This is 1st title(not empty)"],
["", "Suppose this is empty"],
["", "Suppose this is empty too"]
];
var titlesMap = new Map(titles);
titlesMap.forEach(function(key, value, titlesMap)
{
if(isStringEmpty(value))
{
result += 'Field ' + '"' + key + '"' +' cannot be empty!\n'
}
});
result = result.replace(/\n$/, "");
alert(result);
看到了吗? “假设这是空的”被忽略(结果字符串不包含它):(并且result只接受最后一条结果消息。为什么?顺便说一句,为什么key和value属性在地图搞砸了?(我认为键是“1”,值是“这是第一个标题(不是空的)”,但事实并非如此。)我猜这是因为使用数组作为属性...
【问题讨论】:
-
预期输出是什么?
-
当您使用浏览器内置的调试器单步调试代码时,您会看到什么?调试是诊断问题的第一步。
-
字段“假设为空”不能为空! “假设这也是空的”字段不能为空!
-
键应该是唯一的
-
console.log(titlesMap),你会得到答案
标签: javascript arrays loops dictionary foreach