あなたのコードに問題はありません。しかし、小さな機能を定義するスタイルに従うことを好む人もいれば、より良い名前を導入することでコードを読みやすくすることができます。
const pushVideos = videos => videos.forEach(pushVideo);
const pushVideo = video => allVideoIdsInMovieLists.push(video.id);
const pushMovie = movie => pushVideos(movie.videos);
movieLists.forEach(pushMovie);
ただし、このコードを構成するための2つの選択肢があります。最初は一つの大きな連結次のようになります。
allVideosInMovieLists = [].concat(...movieLists.map(movie => movie.videos.map(video => video.id)));
また、ループの良い古いを書くことが合理的である:
for (movie of movieLists)
for (video of movie.videos)
allVideoIdsInMovieList.push(video.id);
これは読みやすく言う人があります。引数リストは、それが少し読みやすくなるかもしれない解体、バックあなたの元のコードに行く
:
movieLists.forEach(({videos}) =>
videos.forEach(({id}) =>
allVideoIdsInMovieLists.push(id)));
質問のパターンの問題は何ですか? – guest271314
1階層以上の深い入れ子構造のため、コードが読みにくくなる可能性があるので、そのようなパターンのスタイルガイドはありますか? –
質問でJavaScriptに問題がなければ、質問は好みと意見に基づいています。あなただけが決定できます。期待される結果は '.map()'と '.concat()'を使って返すこともできます。let allVideoIdsInMovieLists = [] .concat(... movieLists.map(({videos})=> videos.map(({ id =)id))>) '.map()'と '.pop()' 'let allVideoIdsInMovieLists = movieLists.map(({videos})=> videos.map(({id})=> id))。pop() ' – guest271314