使用Array.map仅获取索引时如何避免声明未使用的当前值参数?
优化方案
有几种社区广泛使用的实现方式,都可以避免未使用参数的警告:
- 用下划线作为占位参数
这是JS生态最通用的约定,下划线本身就代表「这个参数是刻意弃用的」,主流的ESLint等语法检查工具都默认支持该规则,不会抛出未使用参数的告警。如果要兼容箭头函数简写还可以省去大括号和return:
array.map((_, index) => <div>X</div>)
- 直接基于数组长度生成索引遍历
如果你不想声明任何无用参数,可以直接利用数组长度生成新的可迭代对象来遍历,完全不用处理原数组的元素参数:
// 方案1:用Array.from实现 Array.from({length: array.length}, (_, index) => <div>X</div>) // 方案2:生成纯索引数组后遍历 [...Array(array.length).keys()].map(index => <div>X</div>)
注意事项
如果你的原数组是存在空元素的稀疏数组,原生map会跳过空元素的遍历,而上述第二种基于长度生成的方案会遍历所有从0到length-1的索引,两种行为存在差异,需要你根据实际业务场景选择对应的实现。
内容的提问来源于stack exchange,提问作者Greed94
相关产品推荐
相关产品推荐

