Расширяю мой комментарий решением. Перейдите ко второму примеру, чтобы просмотреть решение для кода, который вы только что отредактировали
// simulate axios response
const res = {}
res.data = [
{
comments: [
{
comment: 'comment 1.1'
},
{
comment: 'comment 1.2'
}
],
caption: 'caption 1'
},
{
comments: [
{
comment: 'comment 2.1'
},
{
comment: 'comment 2.2'
},
{
comment: 'comment 2.3'
}
],
caption: 'caption 2'
}
]
let commentCount = 0
// iterate through each item, you need this
res.data.forEach(data => {
commentCount += data.comments.length
})
console.log(commentCount) // 5
Использование в вашем сценарии:
componentDidMount() {
const url = "http://localhost:5000/api/comments/";
axios.get(url).then(res => {
let commentCount = 0
res.data.forEach(data => {
commentCount += data.comments.length
})
this.setState({
isLoaded: true,
comments: res.data,
countComment: commentCount
})
})
}
Вы можете проверить следующие статьи MDN:
Основы JavaScript и Массивы