在最新的 ECMAScript 2016 (ES7) 中,增加了一个用于数组的方法 Array#at。本文将为您介绍Array#at 方法的用法和注意事项,同时给您提供一些实际的范例,帮助您更好地理解这个新的方法。
Array#at 的使用
Array#at 方法用于从数组中取出指定索引处的值,该方法接收一个整数,表示想要获取的数组元素的位置。注:该索引从 0 开始,而不是从 1 开始。
下面是 Array#at 方法的语法:
array.at(index)
其中,index 表示想要获取的数组元素的位置。
下面是具体实例:
const arr = ['a', 'b', 'c', 'd']; console.log(arr.at(0)); // 'a' console.log(arr.at(1)); // 'b' console.log(arr.at(2)); // 'c' console.log(arr.at(-1)); // 'd' console.log(arr.at(-2)); // 'c'
可以看出,Array#at 方法返回一个值,即元素本身。
注意事项
Array#at 方法仅接收一个参数:一个表示索引位置的数字。如果传入的不是数字,则视为 NaN,此时将会抛出错误。此外,当传入的索引超出数组的范围时,也会报错。这是因为该方法不会自动将传入的数字取整,也不会将超出范围的负数转换成正数。
下面是一些情况下会抛出错误的示例:
const arr = ['a', 'b', 'c']; console.log(arr.at(3)); // undefined console.log(arr.at(-4)); // undefined console.log(arr.at('abc')); // TypeError: 'abc' is not a valid integer console.log(arr.at(true)); // TypeError: true is not a valid integer console.log(arr.at(false)); // TypeError: false is not a valid integer console.log(arr.at(null)); // TypeError: null is not a valid integer console.log(arr.at(undefined)); // TypeError: undefined is not a valid integer
在这些示例中,由于传入的索引不符合要求,所以都会抛出错误。这时,可以使用 try-catch 结构来捕获该错误,或者进行其他处理。
Array#at 与其他数组方法的结合
在使用 Array#at 方法时,可以与其他数组方法结合使用。比如,在使用 Array#map 方法时,可以通过 Array#at 方法来获取每个元素:
const arr = ['a', 'b', 'c']; const result = arr.map((item, index) => `${index}: ${arr.at(index)}`); console.log(result); // ["0: a", "1: b", "2: c"]
在这个示例中,通过数组的 map 方法遍历了 arr 数组的所有元素,将每个元素的索引和元素本身拼接成一个字符串,并将这个字符串放入一个新的数组中。
总结
Array#at 方法能够很方便地从数组中获取指定位置的元素值,同时也具有一些需要注意的事项。在使用该方法时,需要特别注意传入的参数、索引的范围和异常处理。当与其他数组方法结合使用时,可以发挥出更大的作用。希望这篇文章对您的学习和指导有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651a4ea695b1f8cacd247d7b