0

我在获取要存储到对象中的函数结果时遇到问题。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>
4

2 回答 2

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>
于 2013-07-02T20:44:59.670 回答
0

您需要声明对象变量,将代码中的第 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>
于 2013-07-02T20:42:30.653 回答