我正在解决一些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);
};
答案 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);
};
这应该有效;)