javascript原生数组函数探索

javascript原生数组函数探索

ID:6578918

大小:69.00 KB

页数:9页

时间:2018-01-18

javascript原生数组函数探索_第1页
javascript原生数组函数探索_第2页
javascript原生数组函数探索_第3页
javascript原生数组函数探索_第4页
javascript原生数组函数探索_第5页
资源描述:

《javascript原生数组函数探索》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、JavaScript原生数组函数探索在JavaScript中,可以通过两种方式创建数组,构造函数和数组直接量,其中后者为首选方法。数组对象继承自Object.prototype,对数组执行typeof操作符返回‘object’而不是‘array’。然而执行[]instanceofArray返回true。此外,还有类数组对象是问题更复杂,如字符串对象,arguments对象。arguments对象不是Array的实例,但却有个length属性,并且值能通过索引获取,所以能像数组一样通过循环操作。本文将讨论一些数组原型的方法,并探索这些方法的用法。循环.forEac

2、h断言.some和.every.join和.concat的区别栈和队列.pop,.push,.shift和.unshift模型映射.map查询.filter排序.sort计算.reduce和.reduceRight复制.slice万能的.splice查找.indexOfin操作符走进.reverse如果你想测试上面的例子,您可以复制并粘贴到您的浏览器的控制台中。循环.forEach这是JavaScript原生数组方法中最简单的方法。不用怀疑,IE7和IE8不支持此方法。forEach方法需要一个回调函数,数组内的每个元素都会调用一次此方法,此方法需要三个参数如下

3、:value当前操作的数组元素index当前操作元素的数组索引array当前数组的引用此外,可以传递可选的第二个参数,作为每个调用函数的上下文(this)。['_','t','a','n','i','f',']'].forEach(function(value,index,array){this.push(String.fromCharCode(value.charCodeAt()+index+2))},out=[])out.join('')//<-'awesome'.join函数我将在下文提及,上面例子中,它将数组中的不同元素拼接在一起,类似于如下的效果:ou

4、t[0]+''+out[1]+''+out[2]+''+out[n]。我们不能用break中断forEach循环,抛出异常是不明智的方法。幸运的是,我们有其他的方法中断操作。断言.some和.every如果你曾经用过.NET的枚举,这些方法的名字和.Any(x=>x.IsAwesome) 和 .All(x=>x.IsAwesome)非常相似。这些方法和.forEach类似,需要一个包含value,index,和array三个参数的回调函数,并且也有一个可选的第二个上下文参数。MDN对.some的描述如下:some将会给数组里的每一个元素执行一遍回调函数,直到有一

5、个回调函数返回true位置。如果找到目标元素,some立即返回true,否则some返回false。回调函数只对已经指定值的数组索引执行;它不会对已删除的或未指定值的元素执行。max=-Infinitysatisfied=[10,12,10,8,5,23].some(function(value,index,array){if(value>max)max=valuereturnvalue<10})console.log(max)//<-12satisfied//<-true注意,当回调函数的value<10条件满足时,中断函数循环。.every的工作行为类似,但

6、回调函数要返回false而不是true。.join和.concat的区别.join方法经常和.concat混淆。.join(分隔符)方法创建一个字符串,会将数组里面每个元素用分隔符连接。如果没有提供分隔符,默认的分隔符为“,”。.concat方法创建一个新数组,其是对原数组的浅拷贝(注意是浅拷贝哦)。.concat的标志用法:array.concat(val,val2,val3,valn).concat返回一个新书组array.concat()没有参数的情况下,会返回原数组的浅拷贝浅拷贝意味着新数组和原数组保持相同的对象引用,这通常是好事。例如:vara={fo

7、o:'bar'}varb=[1,2,3,a]varc=b.concat()console.log(b===c)//<-falseb[3]===a&&c[3]===a//<-true栈和队列.pop,.push,.shift和.unshift每个人都知道向数组添加元素用.push。但你知道一次可以添加多个元素吗?如下[].push('a','b','c','d','z')。.pop方法和.push成对使用,它返回数组的末尾元素并将元素从数组移除。如果数组为空,返回void0(undefined)。使用.push和.pop我们能轻易模拟出LIFO(后进先出或先进后出

8、)栈。functionS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。