我通过lodash map函数循环列表数组,并且我尝试删除最后一个子项上的Image。但我无法找到解决方案。
const menus =[
{
name: 'Home',
key:'dashboard'
},
{
name:'change your pin',
key:'resetpin'
},
{
name:'Contact',
key:'contact'
},
{
name:'Sign Out',
key:'signout'
}
]
const menuList = map(menus, (el, i) => {
return <Main>
<Row>
<Text />
<Image />
</Row>
</Main>
})
我不想要最后一个循环的图像
答案 0 :(得分:0)
map()
会收到2个参数value
和index
,因此您可以检查数组索引是否是地图函数中的最后一个,如arr.map((item, index) => index === arr.length-1 && arr.splice(index, 1))
但如果您只想删除最后一项,则可以执行此类arr.splice(-1,1)
希望有所帮助
答案 1 :(得分:0)
_.dropRight(array, [n=1])
创建了一个数组切片,其中有n个元素从末尾删除。所以在你的情况下,它只是_.dropRight(menus)
。您也可以在map
函数中执行此操作:
const menuList = map(_.dropRight(menus), (el, i) => {
return <Main>
<Row>
<Text />
<Image />
</Row>
</Main>
})
答案 2 :(得分:0)
实际上只需删除最后一个孩子的图像。所以我通过这个代码实现了。
const menuLength = menus.length;
const menuList = map(menus, (el, i) => {
if (menuLength === i + 1) {
return <Main>
<Row>
<Text />
</Row>
</Main>
}else {
return <Main>
<Row>
<Text />
<Image />
</Row>
</Main>
})
答案 3 :(得分:0)
为什么不做片? -XX:+AlwaysPreTouch -Xmx27g -Xms27g
)