2017-07-15 18 views
0

のためのようなネストされたラムダ式スタイルをコーディング:Javascriptが、読みやすくするためのスタイルへの最善の方法は何ネストされたラムダ式

movieLists.forEach(movie => movie.videos.forEach(
        video => allVideoIdsInMovieLists.push(video.id))); 

どれスタイリングガイドやラムダ式のためのベストプラクティスを。

+0

質問のパターンの問題は何ですか? – guest271314

+0

1階層以上の深い入れ子構造のため、コードが読みにくくなる可能性があるので、そのようなパターンのスタイルガイドはありますか? –

+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

答えて

4

あなたのコードに問題はありません。しかし、小さな機能を定義するスタイルに従うことを好む人もいれば、より良い名前を導入することでコードを読みやすくすることができます。

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))); 
関連する問題