我正在尝试使用递归函数循环一个数组。如果匹配给定的正则表达式模式,循环应该停止并返回键的值。
当条件满足时,循环正确停止。但是,它只返回数组中第一个键(索引0)的值,如果匹配成功,并返回其余键的“undefined”。
我的错误在哪里?以下代码更好地说明了这个问题:
当条件满足时,循环正确停止。但是,它只返回数组中第一个键(索引0)的值,如果匹配成功,并返回其余键的“undefined”。
我的错误在哪里?以下代码更好地说明了这个问题:
function loop(arr,i) {
var i = i||0;
if (/i/gim.test(arr[i])){
console.log("key value is now: " + arr[i])
return arr[i]; // return key value
}
// test key value
console.log("key value: " + arr[i]);
// update index
i+=1;
// recall with updated index
loop(arr,i);
}
console.log( loop(["I","am", "lost"]) );
// "key value is now: I"
// "I" <-- the returned value
console.log( loop(["am", "I", "lost"]) );
// "key value: am"
// "key value is now: I" <-- test log
// undefined <-- but the return value is undefined! why?!