【问题标题】:Nested function returns undefined嵌套函数返回未定义
【发布时间】:2015-01-30 12:10:10
【问题描述】:

我在一个函数中有一个函数,它循环遍历数据对象并在之后返回数组 当我尝试控制台记录它的'未定义'

function xyz (arg){
    var arr = [];
    function(){
        while(condition){
            arr.push(string);
        }
        return(arr);
    }
}

console.log( xyz(arg));

//undefined

有什么想法吗?

【问题讨论】:

  • 抱歉标题我在标题限制方面遇到了困难
  • 您能否详细说明您想要实现的目标,因为我 99% 确定该事件如果可行,它不是最好的方法。
  • @Royi 我用 Math.floor 来表示慷慨;)
  • 我认为你应该回到关于 javascript 的基本教程。你的所作所为毫无意义。
  • @AhmedAborady 不能帮助我们回答您的问题。

标签: jquery arrays function


【解决方案1】:

首先你不要遍历任何东西。您的代码实际上有很多问题:

  • arg 未使用
  • condition 不敌
  • string 也未定义
  • return 不是函数,而是关键字
  • 匿名的function(){} 永远不会被执行

我只能猜你想要做以下事情:

function xyz (arg){
    var arr = [];
    for(item in arg){
        arr.push(item);
    }
    return arg;
} //this gets all the keys from an object and puts it into a list.

【讨论】:

  • 更不用说嵌套的内部函数永远不会被调用
  • 你可能想要在for...in之外的return
【解决方案2】:

因为函数 xyz 没有返回任何内容,所以您得到了未定义。您需要保存该值。

我假设代替条件和字符串的是实际条件和字符串变量。 所以做这样的事情

function xyz (arg){
    var arr = [];
    var x = function(){
                while(condition){
                     arr.push(string);
                }
                return;
            };
    y = x(); 
    return arr;
}
console.log(xyz("xyz"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2021-01-23
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    相关资源
    最近更新 更多