在网络请求中,我们不可避免的会拿到一些不需要的数据,博主这里是一个列表,但是列表中加入了广告,所以博主的目的就是把里面的广告去除,首先是一个数组,数组中有很多元素,元素里面有很多数据字段,我要把不包含title字段的元素去除掉。这么说,明白了吧。
下面是网路请求:
var me = this; let jo = {page : "1", user_sid: "xxxxxx"}; stream.fetch({ method: 'POST', url: 'https://xxxxxxxx', type:'json', headers: {'Content-Type': 'application/json; charset=utf-8',}, body:JSON.stringify(jo) }, function(ret) { if(!ret.ok){ // me.postResult = "request failed"; }else{ console.log(ret.data.ret); } },function(response){ });
ret.data.ret是从返回的json数据中取出数组,现在要对数组中元素不包含title字段的元素进行删除,一开始按照iOS的思路去做,for in去便利但是拿到的每一个元素是数组的下标,并不是一个对象,而且不含title字段不能用xxxx!==null,要用undefined,学前端的应该都知道吧。for in获取到的是下标这是es里面的内容,深究的可以看看这个点,后来选用了for of,纯粹的for循环,和filter来做:
1. var newArray = ret.data.ret; for(var tmpItem of newArray) { if(tmpItem.title !== undefined) { me.listData.push(tmpItem); } } 2. var newArray = ret.data.ret; for(var i = 0; i < newArray.length; i++) { if(newArray[i].title !== undefined) { me.listData.push(newArray[i]); } } 3. var tempArray = ret.data.ret; me.listData = tempArray.filter(item => { return item.title !== undefined; });
经测试,以上三种方法均可以过滤不包含title的元素。
然后就可以在div中通过v-for来便利数组中的元素进行布局了。