0

我遇到过几次这个问题。如何将函数的输出而不是函数本身添加到 JavaScript 中的数组中。考虑以下:

function getRandomValue(){
  returns a random number
}

myArray = [getRandomValue(), getRandomValue()];

是否可以只将随机数而不是函数本身添加到数组中?

4

4 回答 4

1

已经使用函数的返回值填充数组:

function getRandomValue(){
    //returns a random number
}

var myArray = [getRandomValue(), getRandomValue()]; // Call the function
var myArray2 = [getRandomValue, getRandomValue]; // Reference to the function

标识符后面的括号导致函数被调用,它的返回值将放置在数组的适当索引处。

如果您删除如上所示的调用括号,您将使用对函数的引用填充数组,而不是它返回的值。

于 2012-10-23T07:55:26.537 回答
0

您可以使用变量。

var a = getRandomValue();
var b = getRandomValue();
myArray = [a,b];

但是,正如评论中所说,当您调用数组中的函数时,您将结果放入数组中,而不是函数本身。因此,您的行为与我的解决方案完全相同。

于 2012-10-23T07:33:13.620 回答
0

试试这个:如果你想要一个以上的值,只需将它放入一个循环中。

var myArray= [];
console.log(myArray.push(Math.random()));
于 2012-10-23T07:47:34.817 回答
-1

另一种方法是使用 array_push 函数:

myarray.push(getRandomValue());
于 2012-10-23T07:32:55.713 回答