Javascript の私の最初の日と私は信じられないほど混乱しています。フォームから返された数値を関数に渡していますが、結果が本来あるべきものと一致しません。私のテストでは多くのことが望まれていますが、うまくいけば、次のことが理にかなっています。
この関数g
は、シーケンスの合計を計算します。
<form name="gaussform">
<input name="min"
type="number"
min="1"
value="1">
<input name="max"
type="number"
min="2"
value="10">
<input name="step"
type="number"
min="1"
value="1">
<input onclick="alert_g()"
type="submit"
value="calculate">
</form>
<script type="text/javascript">
function g(min,max,step) {
var actualmax = max - ((max - min) % step)
return (min + actualmax) * ((1 + ((actualmax - min) / step)) / 2)
}
function alert_g() {
var frm = document.forms["gaussform"]
var min = frm["min"].value
var max = frm["max"].value
var step = frm["step"].value
if (min == 1) {
alert("min is 1")}
if (max == 10) {
alert("max is 10")}
if (step == 1) {
alert("step is 1")}
alert(g(min,max,step))
// below returns the desired result
alert(g(1,10,1))}
</script>
if ステートメントは、何が起こっているのかを理解できるようにするためのものです。
したがって、ユーザーが 1,10,1 (デフォルト値) を入力すると、結果は 55 になります。
alert(g(1,10,1))
-> 55
alert(g(min,max,step)
-> 550
alert(g(1,100,2))
-> 2500
alert(g(min,max,step)
-> 4975 (明らかに最小、最大、ステップ == 1,100,2)
関数g
は正しいですが、渡される値に何が起こっているのかわかりません。