gpt4 book ai didi

javascript - 如何在javascript中将值从两个不同的函数传递给第三个函数?

转载 作者:行者123 更新时间:2023-11-28 03:06:48 25 4
gpt4 key购买 nike

我正在尝试使用 javascript 在 html 页面中编写一个练习,以计算从 randomArray() 函数生成的 6 个数字的随机数组的平均值。第一次加载页面后,当我单击“新问题”按钮时,此函数调用以将随机数组复制到表格的单元格中。

我编写 calcMean 来计算从 randomArray() 传递的随机数组的平均值,当我按下 Enter 键时,我让表单停止刷新页面当我输入一个输入,并通过 searchm() 返回输入的值但现在的问题是,我想将 mean 、 maxi 、 mini 和 inans 用于另一个函数,以将真实答案与用户答案进行比较,如果条件为是,则在 div 上写一些东西。第二个问题是,如果我单击调用 solution() 方法的“解决方案”按钮,我想从 calcMean() 中获取平均值以在输入中显示它,我必须传递给最后一个函数才能写入的内容。

<div >
<form action="" method="post" name="meanForm" onsubmit='return false' id="formmine">

<table width="100%" border="0" >
<tr>
<td colspan="3" style="background-color:#06F ;color:#FFF">Answer this problem</td>
</tr>
<tr>
<td style="color:green; font-size:20px">What is the mean of these numbers </td>
<td colspan="2" id="numbers">
</td>
</tr>
<tr>
<td colspan="3">&nbsp;</td>
</tr>
<tr id="answerANDpic">
<td height="62" colspan="3" align="center" > <input name="" type="text" size="15" maxlength="100" height="50" style=" border: solid #0C0 ; border-width:thin" id="answer" onkeydown="searchm(this)"/> </td>
</tr>
<tr>
<td colspan="3" ><div id ="explain" ></div></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="" type="button" id="newEx" style="background-color:green ; color:white" align ="left" value="New Problem" class="send_feed" onclick="randomArray(6,0,99)" /></td>
<td><input name="" type="button" id="solution" style="background-color:#606 ; color:#FFF " align="left" class="send_feed" value="Solution" onclick="solution()"/></td>
</tr>
</table>



</form>
</div>

但是在 javascript 中

var myNumArray = randomArray(6,0,99);

function random_number(min,max) {
return (Math.round((max-min) * Math.random() + min));
}

function randomArray(num_elements,min,max) {
var nums = new Array;

for (var element=0; element<num_elements; element++) {
nums[element] = random_number(min,max);
}

document.getElementById("numbers").innerHTML=nums;
calcMean(nums);
}




function calcMean(nums) {
var num=0;
for (var i=0;i<nums.length;i++) {
num += parseFloat( nums[i], 6 );
}
var divide=num/nums.length;
var mean=(parseInt(divide,10));
var maxi = Math.max.apply(Math,nums);
var mini = Math.min.apply(Math,nums);

return mean,maxi,mini;
}

function searchm(ele) {
if(event.keyCode == 13) {
// alert(ele.value); // i get the value and put it on alert

var inans= ele.value;
return inans;
}
}

function comparing(mean,maxi,mini,inans) {
if(inans==mean){document.getElementById("explain").innerHTML= "correct"+","+inans+"," +maxi+","+mini;
}
}

function solution() {
//some code to take the mean value(realvalue)from calcMean()
//what is parameter should i pass it when i click on solution button to pass it this function
}

最佳答案

学习对象 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects

使用对象,您可以从函数返回任何类型的数据

例如

function calcMins (nums) {
// ...
return {mean: mean, maxi: maxi, mini: mini}

var values = calcMins(nums)
var mean = values.mean // and so on

在 solution() 你需要阅读你的 document.getElementById("numbers").innerHTML 并运行calcNums(nums) 来自保存的数字。之后,您可以将 values.mean 与您输入的平均值进行比较

没有写完整的代码,因为它是练习,发现如何使用函数、对象或数组的方式,看来你对数组很熟悉

return [mean, maxi, mini] 可以,也试试看

关于javascript - 如何在javascript中将值从两个不同的函数传递给第三个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32328190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com