【问题标题】:Storing results of a function into an object将函数的结果存储到对象中
【发布时间】:2013-06-30 09:34:42
【问题描述】:

我在获取要存储到对象中的函数结果时遇到问题。 Return 似乎阻止了循环获取我的所有数组值,并且当我通过将 return 或 console.log 设置为变量来引用我的对象中的 numbers2 时,我不断地变得未定义。我需要将相乘的值放入 numbers2 空数组中。请帮忙!

<html>
<head>
</head>
<script>
   var numbers = [1,2,3,5];
   var numbers2 =[];
   function doubler(numbers){
      for(i=0; i<numbers.length;i++){
         console.log(numbers[i]*2);
      }
   };
   /*doubler(numbers);*/
   object=new Object();
   object.type1 = numbers;
   object.type2 = numbers2;
</script>
</html>

【问题讨论】:

    标签: arrays function variables store save


    【解决方案1】:

    当您引用 Numbers2 时,它是未定义的,因为您只是将值记录在循环中,而不是将它们添加到 numbers2。希望这会有所帮助。

    <html>
    <head>
    </head>
    <script>
    var numbers = [1,2,3,5];
    var numbers2 =[];
    function doubler(numbers){
      for(i=0; i<numbers.length;i++){
        console.log(numbers[i]*2);
        numbers2.push(numbers[i] * 2);
      }
    };
    doubler(numbers);
    object=new Object();
    object.type1 = numbers;
    object.type2 = numbers2;
    
    </script>
    </html>
    

    【讨论】:

    • 我尝试了你的 push 方法,它在概念上似乎很有意义,但是它没有向空数组添加任何东西?
    • 看起来我成功了!我忘了把回调加倍器(数字)放进去。数据现在通过了,谢谢!
    【解决方案2】:

    您需要声明对象变量,将代码中的第 13 行更改为:

    var object = new Object();
    

    如果您将来可以像这样格式化您的代码,那就太好了:

    <html>
    <head>
    </head>
    <script>
        var numbers = [1,2,3,5];
        var numbers2 =[];
        function doubler(numbers){
            for(i=0; i<numbers.length;i++){
                console.log(numbers[i]*2);
            }
        };
        /*doubler(numbers);*/
        object=new Object();
        object.type1 = numbers;
        object.type2 = numbers2;
    
    </script>
    </html>
    

    【讨论】:

    • 感谢语法帮助!
    猜你喜欢
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2021-06-21
    • 2020-01-22
    • 2018-02-15
    • 2019-08-06
    • 2021-06-27
    相关资源
    最近更新 更多