如果是空数组值,控制台记录一些东西(不工作)?使用Javascript

时间:2017-03-06 23:47:04

标签: javascript

我有以下代码。我正在尝试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);

3 个答案:

答案 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]

&#13;
&#13;
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;
&#13;
&#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);