Javascript 如何使用长度链过滤器?
我有这样一个问题,我想在他的个人资料上显示每个用户的tweet数量,但由于某些原因我不能 我的代码被卡住了: 模板:Javascript 如何使用长度链过滤器?,javascript,vue.js,Javascript,Vue.js,我有这样一个问题,我想在他的个人资料上显示每个用户的tweet数量,但由于某些原因我不能 我的代码被卡住了: 模板: <ul v-for="user in users" :key="user.id"> <base-card> <h3 class="name"> <router-link :to="`${userPage}${user.id}`&quo
<ul v-for="user in users" :key="user.id">
<base-card>
<h3 class="name">
<router-link :to="`${userPage}${user.id}`">{{
user.firstName + " " + user.lastName
}}</router-link>
</h3>
<div class="info">
<p>Followers: {{ followers }}</p>
<p>
Tweets:
{{
tweets
.filter((tweet) => tweet.id === user.id)
.map((tweet) => tweet.tweet)
}}
</p>
</div>
</base-card>
</ul>
第二次尝试:
`${tweets
.filter((tweet) => tweet.id === user.id)
.map((tweet) => tweet.tweet)}`.length // I do not know what he is showing here, but he does not show correctly.
我做错了什么?我认为最简单的方法是分别创建变量
filteredTweets
,该变量的值为filteredTweets,因为使用时,map
无法访问数组的当前状态
下面是一个例子:
const filteredTweets=tweets.filter((tweet)=>tweet.id==user.id)
filteredTweets.map((tweet)=>{
console.log(filteredTweets.length)//已过滤tweet的数量
console.log(tweet)//单个tweet
})
我认为最简单的方法是分别创建变量filteredTweets
,该变量的值为filteredTweets,因为使用时,map
无法访问数组的当前状态
下面是一个例子:
const filteredTweets=tweets.filter((tweet)=>tweet.id==user.id)
filteredTweets.map((tweet)=>{
console.log(filteredTweets.length)//已过滤tweet的数量
console.log(tweet)//单个tweet
})
如果要使用计算属性,可以创建一个ID为Prop的TweetDetail子组件,然后创建一个使用Prop值作为上下文的计算Getter
如果要继续使用单个组件,可以执行以下操作:
在模板中,调用新方法并传递用户ID
<span>{{ tweetsCount(userId) }}</span>
如果希望使用计算属性,可以创建一个ID为Prop的TweetDetail子组件,然后创建一个使用Prop值作为上下文的计算Getter 如果要继续使用单个组件,可以执行以下操作: 在模板中,调用新方法并传递用户ID
<span>{{ tweetsCount(userId) }}</span>
你能分享推文的样本数据吗?0:{id:“Hi9fseEIWmTkGEC45aiTY7E90od2”,推文:“你好朋友”,时间:“01:05”}1:{id:“Hi9fseEIWmTkGEC45aiTY7E90od2”,推文:“我完成了”,时间:“01:18”}2:{id:“m5TAyyrl7fWm8trnzteCJiKu2vl2”,推文:“我想我完成了这个项目”,时间:“04:00”}3:{id:“w0xmDjjjqWWWWWWnkWnkWn8F8KwkWg2:”“大家好”,时间:“04:01”}4:{id:“w0xmDxJQWnRlkDFnvElu88F4KWg2”,tweet:“这是我今天的最后一个项目…”,时间:“04:01”}这些tweet来自Firebase实时数据库:)你能分享tweet的样本数据吗?0:{id:“Hi9fseEIWmTkGEC45aiTY7E90od2”,tweet:“你好朋友”,时间:“01:05”}1:{id:“Hi9fseEIWmTkGEC45aiTY7E90od2”,tweet:“我完成了”,time:“01:18”}2:{id:“m5TAyyrl7fWm8trnzteCJiKu2vl2”,tweet:“我想我完成了这个项目”,time:“04:00”}3:{id:“w0xmdxjqwnrlfnvelu88f4kwg2”,tweet:“大家好”,time:“04:01”}4:{id:“w0xmdxjjqwwnrlfnu88f4kwg2”,tweet:“这是我今天的最后一个项目”,time:“04:01”}这些推文来自Firebase实时数据库:)非常感谢,我想到可以这样做,但出于某种原因,我没有尝试调用Metnods中的函数。您的解决方案对我很有效:)非常感谢,我想到可以这样做,但出于某种原因,我没有尝试通过调用Metnods中的函数来实现。你的解决方案对我有效:)
<span>{{ tweetsCount(userId) }}</span>
// Sample data
tweets = [{user: 1, tweet:'yo'}, {user: 1, tweet:'yo'}, {user: 1, tweet:'yo'}, {user: 2, tweet:'yo'}, {user: 2, tweet:'yo'}];
// Your new method:
tweetsCount(user) {
return this.tweets.filter((tweet) => tweet.user === user).length;
}