萌新求助:小程序怎么使得每个id上的操作互相独立啊?

想请教各位前辈一个问题:小程序左右滑动,每滑动一次更新一句句子,我要怎么才能实现每个句子的收藏功能是独立的呢?
我现在的收藏功能是一句话被收藏了,其他全部都被收藏了。
那下面的代码是从网上借鉴的,侵删,但是我只是为了做练习和练手
谢谢各位前辈指点!
这是wxml

<view class="container">
  <swiper class="sentence-swiper">
    <swiper-item class="word" wx:for="{{weeklyrecommend}}"wx:key="index">
      <text  class="{{isClick?'iconfont icon-collect-after collect-position':'iconfont icon-collect-before collect-position'}}" catch:tap="haveSave" data-id="{{item.id}}"></text>
      <view class="classic-word">
        <text>{{item.sentence}}</text>
      </view>
    </swiper-item>
  </swiper>
</view>     

然后是js

// pages/collect/collect.js
Page({
  data: {
    job: [],
    jobList: [],
    id: '',
    isClick: false,
    jobStorage: [],
    jobId: '',
    weeklyrecommend: [
      {
        id: 0,
        sentence: "“为什么讨人喜的女人总是嫁给蠢物?”“因为有脑子的男人是不会娶讨人喜的女人的。”"
      },
      {
        id: 1,
        sentence: "只有坚信自己能改变世界的人,她才能改变世界。"
      },
      {
        id: 2,
        sentence: "“为什么讨人喜的女人总是嫁给蠢物?”“因为有脑子的男人是不会娶讨人喜的女人的。”"
    ]
  },
  haveSave(e) {
    console.log(e)
    if (!this.data.isClick == true) {
      let jobData = this.data.jobStorage;
      jobData.push({
        jobid: jobData.length,
        id: this.data.job.id,
      })
      console.log(this.data.job.id)
      wx.setStorageSync('jobData', jobData);//设置缓存
      wx.showToast({
        title: '已收藏',
      });
    } else {
      wx.showToast({
        title: '已取消收藏',
      });
    }
    this.setData({
      isClick: !this.data.isClick
    })
  }

})

根据id标记点击的句子

小程序好久没写了,大概思路就是:
一个for循环里面是你的每个id,和一句话,在div或者view 里面添加按钮
,获得id或者是序号,我推荐你用index作为序号,因为后面你要取出这句话的时候weeklyrecommend[index]比起你通过

   for (var i of weeklyrecommend){
            if(i.id=="你获得的id"){
                return i.sentence
            }
     }

要方便。

你其实可以用微信的生命周期来做这件事
微信这个页面加载的时候触发
this.data.jobData = wx.getStorageSync('jobData');//获得你存储在缓存里的值
然后你在点击按钮的时候把index传入haveSave里面,
这时候你可以比较是否有收藏,(推荐你用数组)
比如:

///array添加方法indexOf
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};
///array添加方法remove
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};



this.data.jobData=[1,2,3];
let jobData=this.data.jobData
if(jobData.indexOf(index)>-1){
    //说明数组内有这个值,
    jobData.remove(index);
}else{
    jobData.push(index);
}
this.data.jobData=jobData;


然后,你摧毁页面的时候就执行wx.setStorageSync('jobData',this.data.jobData)