js some循环 找出一个数组中符合条件的另一个数组

需求效果:请求"热门兴趣"群的接口,还有一个“我参加的群”的接口,要在热门兴趣群里面标记我参加的兴趣群,如果是我参加的就给按钮“进入群聊”,如果不是我参加的那就给按钮“加入群聊”。

废话不多说,贴代码

js代码:

//热门兴趣群
  getPopList() {
    var that = this;
    request({
      url: "?s=App.Index.Group",//请求接口
      method: "POST"
    }).then(res => {
      console.log(res); //请求出来的结果打印出来
      let popList = res.data.data.data; //找到数据
      let myCroupData = that.data.myCroupData; 
      let loginToken = wx.getStorageSync('token');
      console.log(loginToken);
      if (loginToken != "") { //判断是否登录 如果登录,则循环popList
        popList.forEach(function (itemx, index) {
          popList[index].qun_tag = myCroupData.some(function (item) {
            return item.id == itemx.id
          })
          popList[index].is_audit = myCroupData.some(function (item) {
            if (item.id == itemx.id) {
              return item.is_audit //他们id都相等的情况下,添加上字段is_audit 
            }
          })
        })
      }
      that.setData({
        popList: popList //给data里的数组赋值
      })
      console.log(that.data.popList); //然后打印在控制台看
    })
  }

当不写那一段forEach some 循环时打印在控制台res.data.data.data的值是这样的

写了循环遍历之后打印出来是这样的

很明显多了is_audit 和 qun_tag 这两个字段。然后根据这两个字段的值在wxml里做判断,再渲染。这样就能实现效果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值