为更好的可读性设计样式的最佳方法是什么,嵌套的lambda表达式如:
movieLists.forEach(movie => movie.videos.forEach(
video => allVideoIdsInMovieLists.push(video.id)));
任何样式指南或Lambda表达式的最佳做法。
答案 0 :(得分:5)
您的代码没有任何问题。但是,有些人喜欢遵循定义小函数的风格,除了其他好处之外,还可以通过引入更好的名称来使代码更具可读性。
const pushVideos = videos => videos.forEach(pushVideo);
const pushVideo = video => allVideoIdsInMovieLists.push(video.id);
const pushMovie = movie => pushVideos(movie.videos);
movieLists.forEach(pushMovie);
但是,您可以使用几种方法来构建此代码。首先是一个大联盟:
allVideosInMovieLists = [].concat(...movieLists.map(movie => movie.videos.map(video => video.id)));
写一个好的for循环也是合理的:
for (movie of movieLists)
for (video of movie.videos)
allVideoIdsInMovieList.push(video.id);
有些人会说这更具可读性。
回到原始代码,解构参数列表可能会让它更具可读性:
movieLists.forEach(({videos}) =>
videos.forEach(({id}) =>
allVideoIdsInMovieLists.push(id)));