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里做判断,再渲染。这样就能实现效果。


版权声明:本文为lfkabb原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。