`
chunfengxixi
  • 浏览: 41214 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JS数组使用迭代函数注意点

阅读更多

 

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数组随机函数需要注意,如果数组元素没有显式初始化.该元素不会执行迭代函数的参数

分享到:
评论

相关推荐

    JS的数组迭代方法

    本文实例讲述了JS的数组迭代方法。分享给大家供大家参考。具体实现方法如下: &lt;!doctype html&gt; &lt;html&gt; &lt;head lang=zh&gt; &lt;meta charset=utf-8&gt; &lt;title&gt;js数组迭代&lt;/title&gt; &lt;...

    JQuery 操作Javascript对象和数组的工具函数小结

    JQuery操作非集合数组函数 $.trim(value) 这个函数很简单,从value中删除任何前导或尾随的空白字符。空白字符为任何匹配Javascript正则表达式\s的任何字符。包括空格、换页、换行、回车、tab、垂直指标符等。 $.each...

    详谈JS中数组的迭代方法和归并方法

    数组的迭代方法 ES5中为数组定义了5个迭代方法。每个方法都要接收两个参数:要在每一项上面运行的函数和(可选的)运行该函数的作用域对象—影响this的值。 传入方法中的函数会介绍三个参数:1.数组项的值 2. 该项...

    js数组的五种迭代方法及两种归并方法(推荐)

    js数组的五种迭代方法及两种归并方法(推荐) &lt;!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&gt; &lt;... &lt;head&gt;...

    javaScript数组迭代方法详解

    本文为大家介绍了javaScript数组迭代方法,供大家参考,具体内容如下 每个方法都接收两个参数:要在每一项上运行的函数 和 (可选的)运行该函数的作用域对象。 传入这些方法中的函数会接收三个参数:数组项的值,...

    JavaScript数组迭代方法

    数组常用的迭代方法 ECMAScript5为数组定义了5个迭代方法。每个方法都接受两个参数:要在每一项上运行的函数fn和(可选的)运行该函数的作用域对象——影响 `this` 的值。 传入这些方法中的函数(fn)会接收3个参数:...

    【JavaScript源代码】学会javascript之迭代器.docx

    学会javascript之迭代器  目录 简介 js 中的迭代器是什么样子的 迭代协议 可迭代协议 迭代器协议 迭代过程 迭代总结 自定义迭代 传统写法 生成器函数写法  简介  js 中的迭代器是什么样子的  迭代协议  可迭代...

    javascript中Array数组的迭代方法实例分析

    本文实例讲述了javascript迭代的方法。分享给大家供大家参考。具体实现方法如下: 代码如下://filter() 利用指定的函数确定是否返回数组中包涵的某一项 var num = [1,2,3,4,5,6,12]; num.filter(function(item, ...

    使用async / await或Promises时可使数组迭代容易的实用程序-JavaScript开发

    p-iteration使用async / await时使数组迭代变得容易并保证与ES5 Array迭代方法相同的功能我们都知道,所有方法都返回Promise,使其可以等待并且随后允许Allow p-iteration使用async / await时使数组迭代变得容易并...

    js-iterations:JS对象与数组迭代练习(作业07)

    熟悉 JavaScript 函数、数组和对象 熟悉迭代数组和对象 绩效目标 完成此作业后,您应该能够有效地使用: 简单的 node.js Web 服务器应用程序 循环遍历对象和数组 测试驱动的开发 细节 这个任务包括一个简单的测试...

    JavaScript数组的5种迭代方法

    ES5为数组定义了5个迭代方法。每种方法都接收两个参数。要在每一项上运行的函数和(可选的)运行该函数的作用域对象–影响this的值。//其中(可选的)这个参数暂时未遇到过。 其中,函数都接收三个参数(数组中的每...

    jQuery数组处理函数整理

    写在前面: jQuery的数组处理函数...如果是js对象,则迭代其每个属性;如果是数组,则迭代其每个元素。   3、$.extend(target, source1, source2, …, sourcen)  用source1…n 对象的属性来扩展target对象。返回值

    javaScript函数式编程

    全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的编程、类编程。除此之外,附录中还介绍了更多...

    【JavaScript源代码】8个JS的reduce使用实例和reduce操作方式.docx

    数组累加 数组累加是项目经常遇到的,比如计算商品总价等,使用reduce就可以一行代码搞定,而且不用定义外部变量,reduce是完全无副作用的函数。 // 累加 [1, 2, 3, 4, 5, 6, 7, 8].reduce((a, i) =&gt; a + i); /...

    总结javascript中的六种迭代器

    forEach方法接收一个函数作为参数,对数组中每个元素使用这个函数,只调用这个函数,数组本身没有任何变化 //forEach迭代器 function square(num){ [removed](num + ' ' + num*num + ' '); } var nums = [1,2,3...

    Array.stride:为 javascript 数组实现 stride 方法以在每个循环中迭代多个元素

    数组步幅为 javascript 数组实现 stride 方法以在每个循环中迭代多个元素。安装 npm install array.stride用法在 node.js 中只需要这个模块。 与大多数节点模块不同,array.stride 不导出任何内容。 相反,它修改了...

    Javascript数组方法reduce的妙用之处分享

    Javascript数组方法中,相比map、filter、forEach等常用的迭代方法,reduce常常被我们所忽略,今天一起来探究一下reduce在我们实战开发当中,能有哪些妙用之处,下面从reduce语法开始介绍。 语法 array.reduce...

    JS数组方法reduce的用法实例分析

    本文实例讲述了JS数组方法reduce的用法。分享给大家供大家参考,具体如下: 数组方法 reduce 用来迭代一个数组,并且把它累积到一个值中。 使用 reduce 方法时,你要传入一个回调函数,这个回调函数的参数是一个 ...

    typed-morph:用于处理 Javascript 类型数组的高阶函数(map、reduce、filter)

    用于处理 Javascript 类型数组的高阶函数(map、reduce、filter)。 它们不使用中间数组进行链接,而是利用。 安装 npm i typed-morph 用法 地图 var wrap = require ( 'typed-morph' ) ; var elements = new Uint...

    parallel-batch:批处理数组并使用异步运行迭代器

    使用此库时,请注意。 它是免费的,欢迎您分叉...但是我总是很高兴提出请求;-) 安装 这是一个节点模块。 您使用npm安装它: npm install parallel-batch 用法 并行批处理使您可以轻松地将数组批量拆分(最大指定...

Global site tag (gtag.js) - Google Analytics