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

如何将二维数字数组转换为含row索引的对象数组?

简洁实现二维数组转指定对象数组

输入数组

const layoutMatrix = [
  1,
  [1],
  [0.5, 0.5],
  [0.2, 0.4, 0.4],
];

期望输出

[
  { row: 0, span: 1 },
  { row: 1, span: 1 },
  { row: 2, span: 0.5 },
  { row: 2, span: 0.5 },
  { row: 3, span: 0.2 },
  { row: 3, span: 0.4 },
  { row: 3, span: 0.4 },
]

简洁实现方案

利用数组原生高阶方法,无需繁琐循环或递归,直接完成转换:

const result = layoutMatrix.flatMap((item, rowIndex) => {
  // 将单个数字转为数组,统一处理逻辑
  const spanList = Array.isArray(item) ? item : [item];
  // 映射为目标对象格式
  return spanList.map(span => ({ row: rowIndex, span }));
});

说明

  • flatMap会自动展开内层返回的数组,直接得到一维的对象数组
  • 先把单个数字转为数组,保证后续处理逻辑统一,适配题目中“一级元素可为单个数字或数字数组”的前提
  • 全程使用数组原生方法,代码简洁易读

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:40:08