我正在尝试让我的程序生成一个用于游戏的4号码针。
我最初想要这样做:
function paswdGen() {
var nums = [0, 0, 0, 0];
for each (var x in nums) {
x = Math.floor((Math.random() * 9) + 1);
}
}
document.getElementById("nums").innerHTML = nums;
如何在没有jQuery的情况下在javascript中使用“for each”循环?
答案 0 :(得分:1)
您希望使用语言功能Array.prototype.forEach。在这里查看MDN的一些优秀文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
这是您的代码版本:
var nums = [0, 0, 0, 0];
nums.forEach(function(nums){
x = Math.floor((Math.random() * 9) + 1);
})
答案 1 :(得分:1)
我认为Array.prototype.forEach
可能不是您需要的,我建议您使用Array.prototype.map instead
吗? (请注意,这适用于大多数浏览器和IE9 +)
// this function would return a string of 4 digits
function paswdGen() {
var nums = [0, 0, 0, 0];
return nums.map(function () {
return Math.floor((Math.random() * 9) + 1);
}).join('');
}
答案 2 :(得分:0)
var code = '';
for (var i = 0; i < 4; i++) {
code += Math.floor((Math.random() * 9) + 1);
}
console.log(code); // Outputs 1234 (for example)
如果您的目标是使用forEach:
var nums = [0, 0, 0, 0];
var code = '';
nums.forEach(function(){
code += Math.floor((Math.random() * 9) + 1);
})
console.log(code); // Outputs 1234 (for example)
答案 3 :(得分:0)
无需手动创建阵列:
var length = 4;
var range = 10;
Array.apply(null, {length: length}).map(function() {
return Math.floor((Math.random() * range) + 1);
});
另一种方式:
var length = 4;
var range = 10;
var transform = function(random) { return Math.floor(random * range) + 1 };
Array.apply(null, {length: length}).map(Math.random).map(transform)