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>
添加回答
舉報