You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

偶数长度数组如何从两端向中心依次配对左右两侧元素

数组首尾配对简洁实现

下面提供两种无需手动写for循环的简洁写法,均符合你要求的单行箭头函数形式,且因为你明确数组长度始终为偶数,不需要额外处理边界情况:

方案1:使用Array.from实现

const pairArray = arr => Array.from({ length: arr.length / 2 }, (_, idx) => [arr[idx], arr[arr.length - idx - 1]]);

// 测试用例
console.log(pairArray([0,1,2,3,4,5])) // 输出 [[0,5],[1,4],[2,3]]

原理是直接构造一个长度为原数组一半的新数组,每个位置直接取对应索引的首尾元素配对。

方案2:使用slice+map实现

const pairArray = arr => arr.slice(0, arr.length / 2).map((val, idx) => [val, arr[arr.length - idx - 1]]);

// 测试用例
console.log(pairArray([0,1,2,3,4,5])) // 输出 [[0,5],[1,4],[2,3]]

原理是先截取原数组的前半段,再遍历前半段的每个元素和对应的后半段逆序元素配对。

补充说明

  • 如果你追求极致运行性能,你原来的for循环写法是最优的,没有额外的函数调用开销,在数组长度特别大的时候性能优势明显。
  • 上述两种简洁写法在常规业务场景的数组长度下,性能差异几乎可以忽略,代码更短可读性也更好,可以按需选择。

内容的提问来源于stack exchange,提问作者skyline33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:57:03