需求效果:请求"热门兴趣"群的接口,还有一个“我参加的群”的接口,要在热门兴趣群里面标记我参加的兴趣群,如果是我参加的就给按钮“进入群聊”,如果不是我参加的那就给按钮“加入群聊”。
废话不多说,贴代码
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里做判断,再渲染。这样就能实现效果。