我正在尝试使用递归遍历一个简单的数组。对于这种特定情况,我正在尝试使用递归重新创建 .map()
(不使用 .map()
!)。我目前只推送最后一个元素原始数组,但我想将所有内容插入数组。
function recursiveMap (arr, func) {
let newArr = [];
if (arr.length === 1){
newArr.push(func(arr));
}
else {
newArr.push(...recursiveMap(arr.slice(1),func));
}
return newArr;
}
最佳答案
您需要在当前项上使用func
,并将调用该函数的结果分散到数组的其余部分:
function recursiveMap(arr, func) {
return arr.length ? [func(arr[0]), ...recursiveMap(arr.slice(1), func)] : [];
}
const arr = [1, 2, 3];
const result = recursiveMap(arr, n => n * 2);
console.log(result);
关于javascript - 使用递归的一维数组迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52763203/