Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这个javascript函数总是返回一个未定义的数组?_Javascript_Function_Ecmascript 6_Return_Undefined - Fatal编程技术网

为什么这个javascript函数总是返回一个未定义的数组?

为什么这个javascript函数总是返回一个未定义的数组?,javascript,function,ecmascript-6,return,undefined,Javascript,Function,Ecmascript 6,Return,Undefined,我有一个简单的函数decode,它接受2个数组作为输入,其中第二个数组用于解码第一个数组 非函数递归时的起始输入必须始终采用以下格式: 第一个数组的长度为1 第二个数组的长度为 2,减去1,3,7,15,。。。 输入示例: [4] ,[0,2,6] 由于某些原因,当我尝试返回解码数组时,代码总是返回undefined。事实上,除了未定义之外,我似乎无法返回任何内容,即使我将return语句更改为returnfalse之类的内容。log语句显示两个数组都捕获了正确的值,这让我非常困惑 这是我的密码

我有一个简单的函数decode,它接受2个数组作为输入,其中第二个数组用于解码第一个数组

非函数递归时的起始输入必须始终采用以下格式:

第一个数组的长度为1 第二个数组的长度为 2,减去1,3,7,15,。。。 输入示例: [4] ,[0,2,6]

由于某些原因,当我尝试返回解码数组时,代码总是返回undefined。事实上,除了未定义之外,我似乎无法返回任何内容,即使我将return语句更改为returnfalse之类的内容。log语句显示两个数组都捕获了正确的值,这让我非常困惑

这是我的密码:

var decode = function(A, B){
    console.log("A: "+A+" B:"+B);
    console.log(B.length);
    if(B.length===0){
        return A;
    }
    var newA = [];
    var newB = [];
    var act = 0;
    for(let i=0; i<A.length; i++){
        newA[act] = A[i] - (B[i]/2);
        newA[act+1] = A[i] + (B[i]/2);
        act+=2;
        newB = B.slice(i+1);
    }
    decode(newA, newB);
}

console.log("Answer is" + decode([4], [0,2,6]));
无论您使用什么return语句,它都将返回undefined。Console.logA;另一方面,为我想要返回的内容提供正确的值


非常感谢你的帮助!非常感谢。

问题是如果B.length!=0,则没有返回值。 改变

德克纽瓦,纽布; 到

返回decodenewA,newB;
因为函数中没有“return”关键字。@dwjohnston有一个。。。总是返回一个。。。但事实上,在接近尾声时需要某种回报。。。把这篇文章变成简单的印刷错误。只需返回decodenewA,newB@smnbbrv谢谢这给了我想要的。然而,我仍然不明白为什么这样做有效,而不是我做了什么。。。我可能对递归/返回语句有点困惑。