我对JavaScript和JavaScript还是很陌生,我想知道如何在另一个列表中迭代一个列表。
我有这个json变量:
this.state = {
groups: [{
name: '',
permission: [{
name: ''
}]
}]
}
我想做的是计算第二个列表中包含的元素数,我执行了以下代码,但是它发送了以下错误, groups.map不是函数:
render(){
let permissionGroup = this.state.groups.map((groups) => {
let x = 0;
groups.map((permission) => {
x++;
})
})
return (
<div>
{this.state.groups.map((groups) => {
return (<li key={groups.code}>
<Card style={{ width: '20rem' }}>
<Card.Body>
<Card.Title>{groups.name}</Card.Title>
<Card.Subtitle className="mb-2 text- enter code heremuted">Permissions info</Card.Subtitle>
<Card.Text>
This group has {permissionGroup} permissions in it.
</Card.Text>
<Card.Link href="#">Add Permission</Card.Link>
<Card.Link href="#">Remove Permission</Card.Link>
</Card.Body>
</Card>
</li>)
})}
</div>
答案 0 :(得分:0)
在您的第一个地图内,它应该是groups.permission.map,而不是groups.map。
UNAVAILABLE
那是因为您的第一张地图将每个“组”定义为:
let permissionGroup = this.state.groups.map((groups) => {
let x = 0;
groups.permission.map((permission) => {
所以{name: '', permission: [{name: ''}]}
在这个意义上是一个对象,而不是数组。访问groups
进入所需的数组。