有趣的JavaScript原生数组函数

有趣的JavaScript原生数组函数

ID:40514804

大小:55.53 KB

页数:14页

时间:2019-08-03

有趣的JavaScript原生数组函数_第1页
有趣的JavaScript原生数组函数_第2页
有趣的JavaScript原生数组函数_第3页
有趣的JavaScript原生数组函数_第4页
有趣的JavaScript原生数组函数_第5页
资源描述:

《有趣的JavaScript原生数组函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在JavaScript中,创建数组可以使用Array构造函数,或者使用数组直接量[],后者是首选方法。Array对象继承自Object.prototype,对数组执行typeof操作符返回object而不是array。然而,[]instanceofArray也返回true。也就是说,类数组对象的实现更复杂,例如strings对象、arguments对象,arguments对象不是Array的实例,但有length属性,并能通过索引取值,所以能像数组一样进行循环操作。在本文中,我将复习一些数组原型的方法,并探索这些方法的用法。·循环:.forEach·判断:.some和.every·区分.j

2、oin和.concat·栈和队列的实现:.pop,.push,.shift,和.unshift·模型映射:.map·查询:.filter·排序:.sort·计算:.reduce和.reduceRight·复制:.slice·强大的.splice·查找:.indexOf·操作符:in·走近.reverse循环:.forEach这是JavaScript中最简单的方法,但是IE7和IE8不支持此方法。.forEach有一个回调函数作为参数,遍历数组时,每个数组元素均会调用它,回调函数接受三个参数:·value:当前元素·index:当前元素的索引·array:要遍历的数组此外,可以传递可选的第二

3、个参数,作为每次函数调用的上下文(this).['_','t','a','n','i','f',']'].forEach(function(value,index,array){this.push(String.fromCharCode(value.charCodeAt()+index+2))},out=[])out.join('')//<-'awesome'后文会提及.join,在这个示例中,它用于拼接数组中的不同元素,效果类似于out[0]+”+out[1]+”+out[2]+”+out[n]。不能中断.forEach循环,并且抛出异常也是不明智的选择。幸运的事我们有另外的方式来中断操

4、作。判断:.some和.every如果你用过.NET中的枚举,这两个方法和.Any(x=>x.IsAwesome)、.All(x=>x.IsAwesome)类似。和.forEach的参数类似,需要一个包含value,index,和array三个参数的回调函数,并且也有一个可选的第二个上下文参数。MDN对.some的描述如下:some将会给数组里的每一个元素执行一遍回调函数,直到回调函数返回true。如果找到目标元素,some立即返回true,否则some返回false。回调函数只对已经指定值的数组索引执行;它不会对已删除的或未指定值的元素调用。max=-Infinitysatisfied=

5、[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的运行原理和.some类似,但回调函数是返回false而不是true。区分.join和.concat.join和.concat经常混淆。.join(separator)以separator作为分隔符拼接数组元素,并返回字符串形式,如果没有提供separator,将使用默认的,

6、。.concat会创建一个新数组,作为源数组的浅拷贝。·.concat常用用法:array.concat(val,val2,val3,valn)·.concat返回一个新数组·array.concat()在没有参数的情况下,返回源数组的浅拷贝。浅拷贝意味着新数组和原数组保持相同的对象引用,这通常是好事。例如:vara={foo:'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

7、可以再数组末尾添加元素,但是你知道可以使用[].push(‘a’,‘b’,‘c’,‘d’,‘z’)一次性添加多个元素吗?.pop方法是.push的反操作,它返回被删除的数组末尾元素。如果数组为空,将返回void0(undefined),使用.pop和.push可以创建LIFO(lastinfirstout)栈。functionStack(){this._stack=[]}Stack.prototype.next=func

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

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

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