返回数组的函数
需要一些帮助来完成一个使用后继函数的Javascript程序。我无法找到一种方法来替换返回语句的变量,所以我可以在第二个函数中使用可变参数。返回数组的函数
该程序使用语句findArrayparts(myArray1, myArray2)
来获取函数findArrayparts(myArray1, myArray2)
生成一个小于一个数组(长度相等)的数组长度的随机整数。
然后在函数findArrayparts(myArray1, myArray2)
中使用此随机整数来计算相应的数组元素,并将其放入一个数组中,然后将其显示在警报框中。
<SCRIPT SRC = glossary.js></SCRIPT>
<SCRIPT language = "JavaScript">
var myVar1;
var myVar2;
var myVar3;
var myArray1 = ['red', 'orange', 'green', 'blue', 'yellow'];
var myArray2 = ['tomatoe', 'orange', 'apples', 'blueberry', 'banana'];
// generates random integer and assigns result to myVar1
function getNumberRand(aNum)
{
//return Math.floor(Math.random() * aNum);
myVar1 = Math.floor(Math.random() * aNum);
}
function findArrayparts(myArray1, myArray2)
{
// calls getNumberRand function
getNumberRand(myArray1.length);
// works out characters at same index in both arrays
myVar2 = (myArray1(myVar1));
myVar3 = (myArray2(myVar1));
// new array to hold output
outputArray = new Array(myVar2, myVar3);
// display output
outputArray.join();
alert(outputArray);
}
// Calls findArrayparts function
findArrayparts(myArray1, myArray2);
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
你在注释掉的行中有它。只需返回数值:
function getNumberRand(aNum)
{
return Math.floor(Math.random() * aNum);
}
您在将其注释掉之前就有getNumberRand
。要返回随机数:当你来到以后要使用从该函数返回你只是把结果赋值给一个变量
function getNumberRand(aNum)
{
return Math.floor(Math.random() * aNum);
}
然后:
function findArrayparts(myArray1, myArray2)
{
// calls getNumberRand function
var myVar1 = getNumberRand(myArray1.length);
// works out characters at same index in both arrays
myVar2 = (myArray1(myVar1));
myVar3 = (myArray2(myVar1));
...
}
中用'[]'索引数组键。 – user966923
是的 - 编辑出来的返回语句的作品,但我试图将其分配给变量myVar1,但没有任何反应 – user966923
@user - 你记得调用该方法时分配给变量? – Jamiec
DEMO:http://jsfiddle.net/PjtxY/
var myArray1 = ['red', 'orange', 'green', 'blue', 'yellow'];
var myArray2 = ['tomatoe', 'orange', 'apples', 'blueberry', 'banana'];
function getNumberRand(aNum) {
return Math.floor(Math.random() * aNum);
}
function findArrayparts(myArray1, myArray2) {
// Store return value in local variable
var random_num = getNumberRand(myArray1.length);
// Use [] square brackets to get array member
var myVar2 = myArray1[ random_num ];
var myVar3 = myArray2[ random_num ];
// Store new Array in local variable.
var outputArray = new Array(myVar2, myVar3);
// Store joined result in a variable
var result = outputArray.join();
// Alert the result
alert(result);
}
findArrayparts(myArray1, myArray2);
你为什么要使用全局变量myVar1,myVar2,myVar3?使用return
从函数中获取值。
这是你想要什么来实现:
<script type="text/javascript">
var myArray1 = ['red', 'orange', 'green', 'blue', 'yellow'];
var myArray2 = ['tomato', 'orange', 'apples', 'blueberry', 'banana'];
function getNumberRand(aNum)
{
return Math.floor(Math.random() * aNum);
}
function findArrayparts(myArray1, myArray2)
{
var index = getNumberRand(myArray1.length);
alert(outputArraymyArray1[index] + ', ' + myArray2[index]);
}
findArrayparts(myArray1, myArray2);
</script>
也许我失去了一些东西,但你为什么不只是返回的其他功能使用的值? –
请澄清你的问题。你想要返回什么,从哪个函数? –
顺便说一句,'myVar2 =(myArray1(myVar1));''可能是'TypeError'。在'myVar2 =(myArray1 [myVar1]);' –