网站大量收购独家精品文档,联系QQ:2885784924

JavaScript原生数组函数探究.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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,

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档