gpt4 book ai didi

javascript - 递归返回数组元素

转载 作者:行者123 更新时间:2023-11-30 12:12:37 25 4
gpt4 key购买 nike

出于好奇,是否可以在递归迭代期间返回数组的元素?

var index = 0;
function iterArray(arr){
if(arr && index <= arr.length ){
console.log(arr[index]); //Wanted to return this value instead calling any function here
index++
iterArray(arr)
}
}

注意:- 上面的代码不会按我预期的那样执行。但我希望它能像 arr.pop 那样工作。喜欢:

k = ["a", "b", "c"];
ret1 = iterArray(k);
ret2 = iterArray(k);
ret3 = iterArray(k);
console.log(ret1, ret2, ret3)//"a", "b", "c"

最佳答案

Array.pop 不需要递归实现。

但如果是一般性问题 - 我会想到一些 ECMAScript 6 生成器。

function* iterArray(arr, idx) {
yield arr[idx];
yield* iterArray(arr, ++idx);
}

var arr = [1,2,3];

var g = iterArray (arr, 0);
console.log(g.next().value);
console.log(g.next().value);
console.log(g.next().value);

使用生成器很容易,但要在 ES5 环境中做类似的事情 - 您需要转换此代码,或手动实现类似的机制。

附言:我用了babel用于转译。

关于javascript - 递归返回数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33344067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com