作者:dmitripavlutin译者:前端小智来源:dmitripavlutin最近开源了一个Vue组件,不够完善,欢迎大家一起完善,还有希望大家能给个star支持一下,谢谢大家。github地址:https://github.com/qq44924588...除了普通的对象,数组是JavaScript中广泛使用的数据结构,数组中常见的操作就是通过索引来访问元素。在这篇文章中,我们介绍了新的数组方法array.at(index)。1、方括号语法的局限性通过索引访问数组元素,一般使用方括号array[index]:constfruits=['orange','apple','banana','grape'];constitem=fruits[1];item;//=>'apple'表达式array[index]计算索引处的数组项,此方法也称为属性访问器。在大多数情况下,方括号语法是通过正索引(>=0)访问项的好方法,并且其语法简单易读。但有时我们希望从末尾而不是从头访问元素。例如,要访问数组的最后一个元素:constfruits=['orange','apple','banana','grape'];constlastItem=fruits[fruits.length-1];最后一项;//=>'grape'fruits[fruits.length-1]是访问数组最后一个元素的方法,其中fruits.length-1是最后一个元素的索引。问题是方括号访问器不允许直接从数组末尾访问项目,也不接受负下标。幸运的是,一项新提案(截至2021年1月的第3阶段)将at()方法引入数组(以及类型化数组和字符串),并解决了方括号访问器的许多限制。2.array.at()方法简单来说,array.at(index)访问index参数处的元素。如果索引参数是>=0的正整数,则该方法返回该索引处的项目。constfruits=['橙子','苹果','香蕉','葡萄'];constitem=fruits.at(1);物品;//=>'apple'如果索引参数大于或等于数组长度,则与常规访问器一样,此方法返回未定义:constfruits=['orange','apple','banana','grape'];constitem=fruits.at(999);物品;//=>undefinedtrue神奇之处在于,当您在array.at()方法中使用负数下标时,将从数组末尾访问元素。constlastItem=fruits.at(-1);lastItem;//=>'grape'下面是array.at()方法的更详细示例:constvegetables=['potatoe','tomatoe','onion'];蔬菜.at(0);//=>'土豆'vegetables.at(1);//=>'西红柿'vegetables.at(2);//=>'洋葱'vegetables.at(3);//=>undefinedvegetables.at(-1);//=>'洋葱'vegetables.at(-2);//=>'tomatoe'vegetables.at(-3);//=>'土豆'蔬菜。在(-4);//=>undefined示例地址:https://codesandbox.io/s/arra...如果negIndex小于0,则array.at(negIndex)访问的元素也是array.length+negIndex所在的元素,如下:constfruits=['orange','apple','banana','grape'];constnegIndex=-2;fruits.at(negIndex);//=>'banana'fruits[fruits.length+negIndex];//=>'banana'3.总结JS中的方括号语法是一种常用的通过索引访问项目的好方法。只需将索引表达式放在方括号array[index]中,然后获取该索引处的数组项。但是,使用常规访问器从末尾访问项目并不方便,因为它不接受负索引。因此,例如,要访问数组的最后一个元素,必须使用变通方法constlastItem=array[array.length-1];幸运的是,新的数组方法数组。通过索引访问数组元素的方法。此外,array.at(index)接受负索引,在这种情况下,该方法从末尾获取元素:constlastItem=array.at(-1);只需将array.prototype.atpolyfill引入到我们的应用程序中,即可使用array.at()方法。完了~我是小智,我去洗碗了,我们下期见~代码部署后可能存在的bug,我们无法实时得知。之后为了解决这些bug,我们花了很多时间在日志调试上。这里顺便推荐一个好用的BUG监控工具Fundebug。原文:https://dmitripavlutin.com/ja...交流文章每周更新。可以微信搜索“大千世界”阅读即时更新(比博文早一两篇)。这篇文章在GitHubhttps://github.com/qq449245884/xiaozhi已经收录,整理了很多我的文档。欢迎star和改进。可以参考考点面试。另外,关注公众号,后台会回复福利,看到福利就知道了。
