返回undefined JS

时间:2017-07-18 06:30:00

标签: javascript arrays string undefined

我正在进行JS练习,并且当给定数组包含字符串时我试图返回undefined,而是返回NaN。什么是返回undefined的最佳方式?任何帮助表示赞赏!

function cubeOdd(arr) {
    var count = 0;
    for(var i = 0; i < arr.length; i++) {
      if(arr[i]==="") {
          return undefined;
      }
      else if(arr[i] % 2 !== 0) {
          count += Math.pow(arr[i],3);
      }
  }
  return count;
}
cubeOdd([2,3,4,'g']);

6 个答案:

答案 0 :(得分:0)

因为'g' !== ''使用typeof例如typeof arr[i] !== 'number'typeof arr[i] === 'string'

&#13;
&#13;
function cubeOdd(arr) {
    var count = 0;
    for(var i = 0; i < arr.length; i++) {
      if(typeof arr[i] !== 'number') {
          return undefined;
      }
      else if(arr[i] % 2 !== 0) {
          count += Math.pow(arr[i],3);
      }
  }
  return count;
}
console.log(cubeOdd([2,3,4,'g']), cubeOdd([2,3,4]));
&#13;
&#13;
&#13;

答案 1 :(得分:0)

arr[i]===""

测试它是否是空字符串,而不是任何字符串。

测试:

typeof arr[i] === "string"

答案 2 :(得分:0)

您可以使用string检查变量是否为typeof myVariable

您使用arr[i]===""检查arr[i]是否为空字符串

&#13;
&#13;
function cubeOdd(arr) {
    var count = 0;
    for(var i = 0; i < arr.length; i++) {
      if(typeof arr[i] === 'string')
        return undefined;
      else if(arr[i] % 2 !== 0)
          count += Math.pow(arr[i],3);
  }
  return count;
}

console.log(cubeOdd([2,3,4,'g']));
&#13;
&#13;
&#13;

答案 3 :(得分:0)

只需用

替换以下行
 if(arr[i]==="") {

if(typeof arr[i] === 'string') {

目前,您只检查数组的值是否为空字符串,但是您要检查其类型以确保其为字符串。

答案 4 :(得分:0)

我认为你应该像原型一样使用类型检查。它将跨浏览器工作。下面是您更新的代码,我假设如果值不是Number

,则数组将返回undefined
function cubeOdd(arr) {
    var count = 0;
    for(var i = 0; i < arr.length; i++) {
      if(Object.prototype.toString.call(arr[i])!=="[object Number]") {
          return undefined;
      }
      else if(arr[i] % 2 !== 0) {
          count += Math.pow(arr[i],3);
      }
  }
  return count;
}
cubeOdd([2,3,4,'g']);

答案 5 :(得分:0)

问题与您的if条件有关。你正在检查一个空字符串。只需使用

  

isNaN()

    function cubeOdd(arr) {
    var count = 0;
    for(var i = 0; i < arr.length; i++) {
      if(isNaN(arr[i])) {
          return undefined;
      }
      else if(arr[i] % 2 !== 0) {
          count += Math.pow(arr[i],3);
      }
  }
  return count;
}
cubeOdd([2,3,4,'g']);

isNaN是一个全局javascript函数,用于检查给定值是否不是数字。 参考:isNaN() API

PS:只更改了代码段的条件。