重写条件以仅使用一个console.log


movies = [1,2,3,4,5];
watchedMovies = [1,2,3];
const buttonPressed= false;
movies.map(item => buttonPressed === true ? !watchedMovies.includes(item) && 
console.log(item) : console.log(item))

我怎么能重新思考这一点,只使用一个";console.log";。我在我的react应用程序中有一个按钮,如果我按下它,就会隐藏我观看的电影;console.log";实际上是一个";JSX";元素的所有逻辑,所以我很难将其转换为组件,这样我就不会重用代码。

根据你自己的答案,我认为你实际上想要的是一个过滤器:

let visibleMovies = movies;
if (!buttonPressed) {
visibleMovies = visibleMovies.filter(item => !watchedMovies.includes(item))
}
// ...
visibleMovies.map(item => /*make JSX element*/)
movies.map(item => (buttonPressed === true || !watchedMovies.includes(item)) &&
console.log(item))

相关内容

最新更新