gpt4 book ai didi

javascript - 我在回调中的变量将其值乘以 10

转载 作者:行者123 更新时间:2023-12-01 02:30:02 24 4
gpt4 key购买 nike

我创建了一个没有重复项的随机播放,可以在其中输入最大值。

但是,当我输入“6”时,随机播放的值会上升到 60,这不是有意的。

就在附加随机值之前,我添加了 var“max”值的警报,它显示 6,所以我无法弄清楚 60 来自哪里,1 变成 10,2 变成 20 等等.

这是代码:

JS:

var skip = new Array;
var max = 100;
var go;
var myFunction = function() {
max = $("#max").val();

go();
return max;
};



$(document).ready(function () {

function randGen(max) {
do { var myNum = Math.floor( (Math.random() * (max + 1)) ); } while (skip.indexOf(myNum) != -1)
skip.push(myNum);
return myNum;
}

btn = document.getElementById('max')
btn.addEventListener('change', myFunction)

go = function() {
var skip = new Array;

$('.generate').html( max );

};
$('.generate').on('click', function() {

var gen = $('.generate').html( randGen( max ) );

$('p').append( gen + ", ");
});
});

HTML

<!DOCTYPE html>
<html>
<head>
<base target="_top">





<link href="css/odometer-theme-default.css" rel="stylesheet">
<link type="text/css" rel="stylesheet" href="css/main.css" />

<link rel="manifest" href="manifest.json">
</head>
<body>




<div class="center"><button id="belly" class="generate number odometer">0</button></div>

<form class="options">
<div class="credit">How many words?</div>
</br>
<label for="max">Max</label>
<input type="number" id="max" name="max" autofocus>

</form>
<p></p>
<img src="imgs/iedis.png" id="logo" alt="HTML5 Icon" style="width:max;height:max;">
<script>
if('serviceWorker' in navigator) {
navigator.serviceWorker
.register('/sw.js')
.then(function() { console.log("Service Worker Registered"); });
}
</script>
</body>


<script src="scripts/jquery-3.2.1.js"></script>
<script src="scripts/script.js"></script>
<script src="scripts/odometer.js"></script>
<script src="scripts/funciones.js"></script>
</html>

最佳答案

max = $("#max").val();是一个字符串

如果您输入6

Math.random() * (max + 1)变成Math.random() * ("61")

*强制字符串 "61"到一个数字 - 因此你本质上是在做 Math.random() * (Number(max) * 10 + 1)

简单的修复是将字符串解析为数字

max = Number($("#max").val())

max = parseInt($("#max").val())

max = parseFloat($("#max").val())

max = 1 * $("#max").val();

甚至

max = $("#max").val() - 0;

可能还有其他几种方法可以做到这一点

关于javascript - 我在回调中的变量将其值乘以 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48373627/

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