遵循Airbnb风格指南:JavaScript中跳过值的数组解构是否有更优实现方式?
更简洁的数组解构方式获取高索引元素?
确实,当需要解构数组中索引较高的元素时,写一堆逗号的方式不仅不美观,可读性也很差——想象一下要获取索引为20的元素,得写20个逗号,简直噩梦。这里有两种更优雅的解决方案,完美适配你的需求:
方案一:结合slice方法解构
利用数组的slice方法先截取目标位置的子数组,再解构第一个元素即可。这种方式不管目标索引多大,只需要修改slice的参数:
const splittedArr = [1, 2, 3, 4, 5]; // 获取索引为4的元素 const [res] = splittedArr.slice(4); console.log(res); // 输出:5 // 如果要获取索引为10的元素(假设数组长度足够) const [res10] = splittedArr.slice(10);
slice(startIndex)会返回从startIndex开始到数组末尾的新数组,我们只需要解构这个新数组的第一个元素,就等价于原数组对应索引的元素。
方案二:利用数组的对象特性解构
数组本质上也是特殊的对象,索引就是它的属性名。我们可以直接通过对象解构的方式,指定要获取的索引属性,并将其重命名为我们需要的变量:
const splittedArr = [1, 2, 3, 4, 5]; // 获取索引为4的元素,并重命名为res const { 4: res } = splittedArr; console.log(res); // 输出:5 // 获取索引为100的元素 const { 100: res100 } = splittedArr;
这种方式更直接,可读性也更强——一眼就能看出你要获取的是数组哪个位置的元素,不需要数逗号的数量。
对比你原来的写法:
// 原写法 const [, , , , res] = splittedArr;
上面两种方案都能让代码更简洁、更易维护,尤其是当目标索引较大时优势明显。
内容的提问来源于stack exchange,提问作者Aalexander
相关产品推荐
相关产品推荐

