JS的数组定义了如下几个迭代函数
some(),every(),forEach(),filter();map();
以下是随机获取双色球
function getRandomBall(){
var redBalls=[];redBalls.length=6;
redBalls.forEach(function (item,index,arr){
arr[index]=getRandomInt(32);
})
var blueBall=getRandomInt(16);
redBalls.push(blueBall);return redBalls;
}
function getRandomInt(max){
max++;
while(true){
var rdm = parseInt(Math.random()*100);
if(rdm<max && rdm !=0) return rdm;
}
}
console.info(getRandomBall());
结果却不是想要的结果,
返回的是[undefined,undefined,undefined,undefined,undefined,undefined,22]
原因:arr[index]=getRandomInt(32);压根就没执行
修改:var redBalls=[];redBalls.length=6; 为:var redBalls=[undefined,null,'',NaN,false,0];
结果OK,
结论:使用JS数组随机函数需要注意,如果数组元素没有显式初始化.该元素不会执行迭代函数的参数