React JS — проверьте, содержит ли массив объектов больше объектов в нем

#javascript #arrays #json #reactjs #object

Вопрос:

Пожалуйста, помогите мне. все, что я хочу, это показать <div className="songs-list-header-col">Album</div> только тогда, когда массив треков включает artist свойство в качестве объекта. У меня есть несколько сценариев, в которых художник не является объектом, который я не хочу показывать <div> . что мне делать?

 tracks [
0:{
   album: {id: 1, album_name: "Fearless (Taylor's Version)"}
   artist: {id: 1, artist_name: "Taylor Swift"}
   genre: "POP"
   id: 1
   time: "00:03:49"
   track_name: "Love Story"
},
1: {
   album: {id: 1, album_name: "Fearless (Taylor's Version)"}
   artist: {id: 1, artist_name: "Taylor Swift"}
   genre: "POP"
   id: 2
   time: "00:03:40"
   track_name: "You Belong With Me"
},
2: {
   album: {id: 2, album_name: "Divide"}
   artist: {id: 2, artist_name: "Ed Sheeran"}
   genre: "POP"
   id: 4
   time: "00:04:23"
   track_name: "Perfect"
}
]
 

Я знаю, что карта — это не решение, но я попробовал, она дает решение, но так же, как работает карта, она печатает div 3 раза. но все, что я хочу, это проверить, является ли artist это объектом или нет. если это объект печати div.

 {
  tracks.map((track) => {
    return (
      typeof track.artist === 'object' amp;amp;
        <div className="songs-list-header-col">Album</div>
    )
  })
}
 

а также я не могу напрямую проверить, как tracks[0].artist это выдает ошибку типа. что мне делать?

Ответ №1:

Вы можете сделать

 tracks.filter(track => typeof track.artist === 'object')
      .map(track => <div className="songs-list-header-col">Album</div>)
 

Комментарии:

1. Я попробовал, но это дает ошибку ссылки: объект не определен.

2. Теперь я исправил этот пример

3. Извините за ошибку.