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

JavaScript如何将一维数组分组转换为x/y键名的对象数组

数组按相邻元素分组转键值对实现方案

你要做的本质是把长度为偶数的一维数组,按每2个相邻元素为一组,映射为带x、y属性的对象集合,下面是两种可直接运行的实现:


方法1:for循环步进实现(逻辑最直观,兼容性最好)

直接让循环索引每次递增2,每次取当前索引和下一个索引的值组成对象,推入结果数组即可:

var arr = [1,2,3,4]
var new_arr = []
for (var i = 0; i < arr.length; i += 2) {
  new_arr.push({
    x: arr[i],
    y: arr[i + 1]
  })
}
// 运行后new_arr的结果和你给出的目标结构完全一致

如果原数组可能出现奇数长度的情况,可以给y加自定义兜底值,比如y: arr[i + 1] || null,避免出现undefined。


方法2:reduce函数式写法

适合习惯函数式编程风格的场景,不需要额外声明循环变量:

var arr = [1,2,3,4]
var new_arr = arr.reduce(function(result, current, index) {
  // 偶数索引对应每组的x值,此时新建对象推入结果
  if (index % 2 === 0) {
    result.push({
      x: current,
      y: arr[index + 1]
    })
  }
  return result
}, [])

两种实现都严格匹配你给出的输入输出结构,不需要引入额外依赖,直接复制到业务代码里就能运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 01:27:33