返回数组的函数

问题描述:

需要一些帮助来完成一个使用后继函数的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> 
+0

也许我失去了一些东西,但你为什么不只是返回的其他功能使用的值? –

+0

请澄清你的问题。你想要返回什么,从哪个函数? –

+2

顺便说一句,'myVar2 =(myArray1(myVar1));''可能是'TypeError'。在'myVar2 =(myArray1 [myVar1]);' –

你在注释掉的行中有它。只需返回数值:

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)); 

    ... 
} 
+0

中用'[]'索引数组键。 – user966923

+0

是的 - 编辑出来的返回语句的作品,但我试图将其分配给变量myVar1,但没有任何反应 – user966923

+0

@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>