Swift高效索引查询:基于索引数组提取整数数组元素
高效实现索引数组查询的方案
嘿,这个需求用原生JavaScript数组方法就能轻松搞定,完全不用写显式循环,而且代码简洁又高效!
核心实现:使用map()方法
map()方法天生就是用来对数组的每个元素做转换的,正好契合我们的需求——把queries里的每个索引值,转换成arrayWithData中对应位置的元素。
示例代码如下:
let arrayWithData = [10, 20, 30, 15, 25, 35, 56]; let queries = [2, 4, 6]; let queriedArray = queries.map(index => arrayWithData[index]); console.log(queriedArray); // 输出: [30, 25, 56]
为什么这个方案高效?
- 无显式循环:代码逻辑直观,可读性拉满,不用维护循环计数器那一套冗余代码
- 原生优化:
map()是JS引擎原生实现的方法,底层经过性能优化,比手写循环的效率更高(尤其是处理大数组时) - 精准匹配需求:每一步逻辑都直接对应需求——遍历索引数组,取出目标数组的对应元素
可选:处理无效索引的情况
如果担心queries里存在超出arrayWithData范围的索引(比如负数、大于等于数组长度的数值),可以结合filter()先过滤有效索引,再做映射:
let queriedArray = queries .filter(index => index >= 0 && index < arrayWithData.length) .map(index => arrayWithData[index]);
这样就能确保最终结果里只包含有效存在的元素啦。
内容的提问来源于stack exchange,提问作者AD Progress
相关产品推荐
相关产品推荐

