Zum*_*mmi 5 javascript arrays recursion loops if-statement
我试图递归那些数组以找到奇数/偶数,然后将push
它们转换为newArr,但结果而不是数组,结果是在找到奇数/偶数后得到数字的字符串.
这是我写的代码,
function odd(nums){
var result = [];
if(nums.length === 0) {
return result;
} else if (nums[0] % 2 === 0){
result.push(nums[0])
// return odd(nums.slice(1))
};
return result + odd(nums.slice(1));
};
var arr = [1,8,3,4,4,5,9,13,13,9,10];
var print = odd(arr);
console.log(print)
Run Code Online (Sandbox Code Playgroud)
return result + odd(nums.slice(1));
结果什么/ undefined
,
任何人都可以帮我解释为什么结果字符串,而不是我想要的数组
你需要concat
数组.+
仅适用于字符串或数字.
顺便说{ ... }
一下,在块语句之后,你不需要分号.
function odd(nums){
var result = [];
if (nums.length === 0) {
return result;
}
if (nums[0] % 2 === 0) {
result.push(nums[0]);
}
return result.concat(odd(nums.slice(1)));
}
var arr = [1, 8, 3, 4, 4, 5, 9, 13, 13, 9, 10];
var print = odd(arr);
console.log(print);
Run Code Online (Sandbox Code Playgroud)