3 回答
TA贡献1860条经验 获得超8个赞
您不能仅仅.map(..)
因为.map(..)
返回一个与原始数组具有相同数量元素的数组而执行此操作,并且预期结果是一个具有myArray.length / 4
多个元素的数组。
.reduce(..)
要实现此目的,您可以使用和的组合.map(..)
,下面是一个示例:
myArray.reduce((a, c, i) => {
if (i % 4 === 0) {
a.push([]);
}
a[a.length - 1].push(c);
return a;
}, []).map((arr) => (
<Form.Group>
{arr.map(element => (<Form.Input id={element} label={element} type="number"/>))}
</Form.Group>
))
其作用是首先创建一个二维数组(内部数组有 4 个元素),然后映射第一维和第二维。
TA贡献1829条经验 获得超4个赞
您可以映射数组块。
const chunk = (arr, size) => Array.from({ length: Math.ceil(arr.length / size) }, (v, i) =>
arr.slice(i * size, i * size + size)
);
映射 4 块并形成组
chunk(myArray).map(ch=>{
//Return a group
<Form.Group>
{ch.map(element=>{
//return element
})}
</Form.Group>
}
TA贡献1963条经验 获得超6个赞
你可以这样做
return <Form.Group>
{
myArray.map((element , index) => {
return <Form.Input key={index} id={element} label={element} type="number"/>
}
}
</Form.Group>
添加回答
举报