我有以下代码。我正在尝试console.log'空数组值'值为空的任何地方,但这不能正常工作。那么空数组项的值是什么?我可以将if语句设置为什么(注意:if(statement [a] .length === 0)不起作用,如其他堆栈溢出问题所示)
let statement = prompt("Say Something:");
statement = statement.split('');
for(a = 0; a < statement.length; a++){
if(a === undefined){
console.log('empty array value');
}
}
console.log(statement);
答案 0 :(得分:1)
试试这个:
let statement = prompt("Say Something:");
statement = statement.split('');
for(a = 0; a < statement.length; a++){
if(statement[a].trim().length ==0){
console.log('empty array value');
}
}
console.log(statement);
修改强>
您的第一个问题是在您的代码中,您尝试检查a
是否未定义,而a
永远不会被定义,因为它是一个数字。
你的第二个问题是你错误地尝试了if (statement[a].length === 0)
,因为如果你的statement[a]
包含空格,那么它的长度不会为零,所以你应该trim
它首先从元素的开头和结尾删除所有空格,然后检查它的长度(我在此处将其作为解决方案发布)
答案 1 :(得分:0)
在您的情况下,a
将永远不会undefined
,因为您在0
循环中为其分配for
值,并且每次循环都会递增{ - 1>}它是定义的,并且保存的值不同于未定义的&#39;。
我想你想按照以下方式去做:statement[a]
。
let statement = prompt("Say Something:");
statement = statement.split('');
for(a = 0; a < statement.length; a++){
if(statement[a] === undefined){
console.log('empty array value');
}
}
console.log(statement);
&#13;
答案 2 :(得分:-1)
试一试:
let statement = prompt("Say Something:");
statement = statement.split('');
for(a = 0; a < statement.length; a++){
if(typeof a === "undefined"){
console.log('empty array value');
}
}
console.log(statement);