Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用长度链过滤器?_Javascript_Vue.js - Fatal编程技术网

Javascript 如何使用长度链过滤器?

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

我有这样一个问题,我想在他的个人资料上显示每个用户的tweet数量,但由于某些原因我不能

我的代码被卡住了:

模板:

<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;
}