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

无需迭代遍历将成对数组转换为含两个独立数组的对象的方法

解答

首先可以明确:不存在完全不需要遍历原数组的操作方法。所有能实现该转换的API底层都会遍历数组逐个读取元素,只是不需要你手动写for/forEach之类的遍历逻辑而已。

下面是两种常用的简洁实现方式:

方案1:reduce 实现(全场景适用)

这个方案不会受数组元素重复影响,即使有重复的x值也不会丢失数据:

const pairArr = [[x1, y1], [x2, y2], [x3, y3]]
const res = pairArr.reduce((acc, [key, value]) => {
  acc.keys.push(key)
  acc.values.push(value)
  return acc
}, { keys: [], values: [] })

方案2:Object.fromEntries 实现(仅适用于key唯一场景)

如果原数组所有第一个元素x都不重复,可以用这个更简洁的写法:

const pairArr = [[x1, y1], [x2, y2], [x3, y3]]
const tempObj = Object.fromEntries(pairArr)
const res = {
  keys: Object.keys(tempObj),
  values: Object.values(tempObj)
}

注意:如果原数组存在重复的x值,后出现的项会覆盖先出现的项,导致数据丢失,仅确认所有x唯一时使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:36:00