乐趣区

微信小程序:for..in里用if..else导致不能for循环的问题

请求接口,获得一个对象数组,将 res.data 里的数据 push 到 result 数组里有四种状态,根据状态 type 不同来判断需要显示的数据, 但是我将 if 判断写在了 for..in 里就会出现数据不循环的情况,所有我用了 forEach() 的方法,forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数, 在回调函数里进行判断,将判断的属性和属性值写进对象里,然后在 wxml 里通过 wx:if=” 来进行判断。
js:
page({
result:[],
cancleBtn :true,// 默认为 true
get(){
utils.askData(‘get’, url, ”, (res) => {// 请求接口,res.data 是个数组,将 res.data 里的数据 push 到 result 里
for (let key in res.data) {
result.push(res.data[key]);
//if(res.data[key].type == “1”){
//this.setData({
// cancleBtn:’true’,
// })
// }else{
//this.setData({
// cancleBtn:’false’,
// })
// }
}
// 可以循环
result.forEach(function(v){// 将是否显示写入 result 数组里
if(v.type==”1″)
{v.cancleBtn = true;}
if (v.type== “3”){
v.cancleBtn = false;
}
}, ”);
}
});

wxml:
<view wx:for=”{{result}}” wx:key=”{{index}}”>
<view wx:if=”{{item.cancleBtn}}”></view>
</view>

退出移动版