尝试在命令行中运行时,JavaScript程序的输出为“未定义”

时间:2018-12-11 04:47:25

标签: javascript arrays

我正在解决一些Javascript编码问题,我想使用node file.js在命令行上打印数组的输出,但是我一直得到undefined作为输出。不知道我在做什么错。我尝试在代码的不同区域添加一个console.log语句。这是代码:

    var sortArrayByParity = function(A) {
    E = [];
    O = [];
    for (i = 0; i < A; i++){
        if (A[i] % 2 === 0){
            E.push(A[i]);
        }
         else {
            O.push(A[i]);
        }
    }
    return E.concat(O);
    console.log(E);
};

2 个答案:

答案 0 :(得分:0)

您的代码有一些问题:

console.log()之后的return将不会运行,因为在return之后的任何代码都不会执行,因为该函数不再运行。

另一个问题是您的for循环。当前,您的条件i < A不正确,因此您尚未循环播放。相反,您想使用以下方法遍历length的{​​{1}}:

A

请参见以下示例:

for(var i = 0; i < A.length; i++) {
  // Do code
}

答案 1 :(得分:0)

您应该做一些验证。

  • 确保传递数组
  • 您缺少在for循环中添加A.length

    var sortArrayByParity = function(A) {
        let E = [];
        let O = [];
        let errMsg = ''
        // Make sure you're passing and array
        if ( ! A instanceof Array ) {
          return errMsg = ' Argument is not an array '
         }
          for (let i = 0; i < A.length; i++){
              if (A[i] % 2 === 0){
                  E.push(A[i]);
              }
               else {
                  O.push(A[i]);
              }
        }
        console.log(E);
        return E.concat(O);
    };
    

这应该有效;)