- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaScript原生数组函数探究
JavaScript原生数组函数探索
在JavaScript中,可以通过两种方式创建数组,构造函数和数组直接量, 其中后者为首选方法。数组对象继承自Ototype,对数组执行typeof操作符返回‘object’而不是‘array’。然而执行[] instanceof Array返回true。此外,还有类数组对象是问题更复杂,如字符串对象,arguments对象。arguments对象不是Array的实例,但却有个length属性,并且值能通过索引获取,所以能像数组一样通过循环操作。
本文将讨论一些数组原型的方法,并探索这些方法的用法。
循环.forEach
断言.some和.every
.join和.concat的区别
栈和队列.pop,.push,.shift和.unshift
模型映射.map
查询.filter
排序.sort
计算.reduce和.reduceRight
复制.slice
万能的.splice
查找.indexOf
in操作符
走进.reverse
如果你想测试上面的例子,您可以复制并粘贴到您的浏览器的控制台中。
循环.forEach
这是JavaScript原生数组方法中最简单的方法。不用怀疑,IE7和IE8不支持此方法。
forEach方法需要一个回调函数,数组内的每个元素都会调用一次此方法,此方法需要三个参数如下:
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函数我将在下文提及,上面例子中,它将数组中的不同元素拼接在一起,类似于如下的效果:out[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将会给数组里的每一个元素执行一遍回调函数,直到有一个回调函数返回true位置。如果找到目标元素,some立即返回true,否则some返回false。回调函数只对已经指定值的数组索引执行;它不会对已删除的或未指定值的元素执行。
max = -Infinity
satisfied = [10, 12, 10, 8, 5, 23].some(function (value, index, array) {
if (value max) max = value
return value 10
})
console.log(max)
// - 12
satisfied
// - true
注意,当回调函数的value 10 条件满足时,中断函数循环。.every的工作行为类似,但回调函数要返回false而不是true。
.join和.concat的区别
.join方法经常和.concat混淆。.join(分隔符)方法创建一个字符串,会将数组里面每个元素用分隔符连接。如果没有提供分隔符,默认的分隔符为“,”。.concat方法创建一个新数组,其是对原数组的浅拷贝(注意是浅拷贝哦)。
.concat 的标志用法:array.concat(val, val2, val3, valn)
.concat 返回一个新书组
array.concat()没有参数的情况下,会返回原数组的浅拷贝
浅拷贝意味着新数组和原数组保持相同的对象引用,这通常是好事。例如:
var a = { foo: bar }
var b = [1, 2, 3, a]
var c = b.concat()
console.log(b === c)
// - false
b[3] === a c[3] === a
// - true
栈和队列.pop,.push,.shift和.unshift
每个人都知道向数组添加元素用.push。但你知道一次可以添加多个元素吗?如下[].push(a,
您可能关注的文档
- GIMP实用教程1文件的打开及存储.docx
- GB第2次机器人大战G流程攻略.doc
- Gif格式文字小动画制作教程.doc
- Gmfwlv毕业生登记表自我鉴定范本.doc
- GMP药品生产质量的管理细则.doc
- GIS系统的主要功能和其被应用的领域.docx
- GL_10L、20L系列过流继电器.doc
- GIS综合楼地基和基础技术交底.doc
- GOOGLEchrome图标诞生过程.doc
- GMP引入国际通用无菌基准为制剂接轨国际开路.docx
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
最近下载
- 学生工作单位实习证明word模板.docx
- 横河CS3000中文培训从讲解到组态最全资料.ppt VIP
- 内容讲义文本kyn28型开关柜及五防系统.ppt
- 四年级上册美术试卷国家义务教育质量监测答案.pdf VIP
- 2024年四川省广安市《保安员证》考试题库含答案 .pdf VIP
- 毕业设计(论文)-基于PLC的电梯控制系统设计.doc
- 糖尿病护理业务学习护理课件.pptx VIP
- 三菱电梯MAXIEZ-CZ调试大纲.pdf
- 东芝2307维修手册 东芝200623062506维修手册.doc
- 中考英语阅读训练Gulliver's Travels (selection)《格列佛游记》(选段).pdf VIP
文档评论(0)