
本文介绍如何基于一个整数数组(如 [4,3,2,1])将字符串数组(如 ['a','b',..., 'j'])切分成对应长度的子组,并为每组生成一个包含多个子 `
在 React 开发中,常需将线性数据按动态规则组织为嵌套 DOM 结构。本例的核心需求是:用 intArr 中每个数字作为“段长”,依次从 player 数组中截取对应数量的元素,每段渲染为一个外层 实现分为两步:分组(Grouping) 与 渲染(Rendering)。 我们使用 map 配合累加器 acc 实现前缀和式切片,确保每段严格按 intArr[i] 的长度提取 player 中的连续元素: 利用 groups.map() 生成外层容器,再对每个子数组执行 map() 渲染内层 最终输出的 DOM 结构完全符合预期: 掌握这种“数值驱动分组 + 嵌套映射渲染”模式,可轻松应对仪表盘分栏、游戏关卡布局、表单分步展示等典型业务场景。✅ 第一步:按整数数组分组字符串
const intArr = [4, 3, 2, 1];
const player = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];
let acc = 0;
const groups = intArr.map(len => {
const start = acc;
acc += len;
return player.slice(start, acc);
});
// groups === [['a','b','c','d'], ['e','f','g'], ['h','i'], ['j']]⚠️ 注意:acc 必须在 map 外部初始化,否则每次迭代都会重置;slice(start, end) 是左闭右开区间,天然适配累加逻辑。
✅ 第二步:嵌套渲染 JSX 结构
return (
<>
{groups.map((group, i) => (
? 小结与建议










