日期:2014-05-16 浏览次数:20357 次
?
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数组随机函数需要注意,如果数组元素没有显式初始化.该元素不会执行迭代函数的参数