Javascript 将数组渲染为矩阵(每行n个项目)
我有一个视图,其中有一个地图功能:Javascript 将数组渲染为矩阵(每行n个项目),javascript,react-native,Javascript,React Native,我有一个视图,其中有一个地图功能: <View style={{width: 500, height: 500}}> {[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15].map((x,i) => { return( <View style={{width: 50, height: 50, backgroundColor: 'red'}}></View>
<View style={{width: 500, height: 500}}>
{[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15].map((x,i) => {
return(
<View style={{width: 50, height: 50, backgroundColor: 'red'}}></View>
)
})}
</View>
{[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15].map((x,i)=>{
返回(
)
})}
如何将其映射为模式?像连续5次
您可以使用flexbox和flexWrap实现这一点,请参见下面给出的示例
您可以阅读此文档以实现此目的
您可以使用flexbox和flexWrap实现这一点,请参见下面给出的示例
您可以阅读此文档以实现此目的
您可以将源数组拆分为所需长度的块(行),并使用嵌套的
.map()
循环渲染其中的行和单元格:
const chunkArr = (arr, size) =>
arr.reduceRight((r,i,_,s) => (r.push(s.splice(0,size)),r),[])
以下是该概念的完整现场演示:
const{useState}=React,
{render}=ReactDOM,
rootNode=document.getElementById('root'))
常数cellData=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
常数矩阵=({cells})=>{
const rows=cells.reduceRight((r,i,u,s)=>(r.push(s.splice(0,5)),r),[])
返回(
{
rows.map((row,i)=>(
{
行映射((单元格,j)=>(
{cell}
))
}
))
}
)
}
渲染(
,
根节点
)
.wrapper{
显示器:flex;
弯曲方向:立柱;
}
.行{
显示器:flex;
弯曲方向:行;
}
.细胞{
宽度:20px;
高度:20px;
保证金:5px;
背景色:红色;
颜色:#fff;
文本对齐:居中;
}
您可以将源数组拆分为所需长度的块(行),并使用嵌套的.map()
循环渲染其中的行和单元格:
const chunkArr = (arr, size) =>
arr.reduceRight((r,i,_,s) => (r.push(s.splice(0,size)),r),[])
以下是该概念的完整现场演示:
const{useState}=React,
{render}=ReactDOM,
rootNode=document.getElementById('root'))
常数cellData=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
常数矩阵=({cells})=>{
const rows=cells.reduceRight((r,i,u,s)=>(r.push(s.splice(0,5)),r),[])
返回(
{
rows.map((row,i)=>(
{
行映射((单元格,j)=>(
{cell}
))
}
))
}
)
}
渲染(
,
根节点
)
.wrapper{
显示器:flex;
弯曲方向:立柱;
}
.行{
显示器:flex;
弯曲方向:行;
}
.细胞{
宽度:20px;
高度:20px;
保证金:5px;
背景色:红色;
颜色:#fff;
文本对齐:居中;
}
是的@yevGen gorbunkov很抱歉没有早点回复这是一个非常忙碌的周末。非常感谢您的解决方案!别担心。不客气。Yep@yevGen gorbunkov很抱歉没有早点回复。周末很忙。非常感谢您的解决方案!别担心。不客气。