Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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 - Fatal编程技术网

Javascript 为什么会这样?

Javascript 为什么会这样?,javascript,Javascript,运行此命令时,其打印未定义。执行ret.push(func(arr[i])时,它是否具有上下文权限 function print(arr,func){ var ret =[] for(let i =0 ;i<arr.length;i++){ ret.push(func(arr[i])) } return ret;

运行此命令时,其打印未定义。执行
ret.push(func(arr[i])
时,它是否具有上下文权限

        function print(arr,func){
             var ret =[]
             for(let i =0 ;i<arr.length;i++){
                  ret.push(func(arr[i]))
                 }
             return ret;
        }
        var numbers = [1,2,3,4,5];
        console.log(print(numbers,(x)=>{x+1}));
函数打印(arr、func){
var ret=[]
对于(设i=0;i{x+1}));

它打印[undefined,undefined,undefined,undefined,undefined]。

您可以使用
return
语句获取新值

函数打印(arr、func){
var-ret=[];
for(设i=0;i{return x+1;}));
//                                  ^^^^^^
//或者用一个简化的lambda,隐式返回(kudos paul!)

console.log(print(number,x=>x+1));
看起来像
func
没有返回任何东西..?您的箭头函数没有返回任何东西。您没有从
func()返回任何东西
请注意,如果删除大括号,也会得到一个隐式返回:
x=>x+1
是的,应该没有大括号。谢谢提醒。@Paul。如此微小的细节会带来很大的不同。这就是我喜欢JavaScript:D的原因