weex-过滤数组中的元素并进行删除

在网络请求中,我们不可避免的会拿到一些不需要的数据,博主这里是一个列表,但是列表中加入了广告,所以博主的目的就是把里面的广告去除,首先是一个数组,数组中有很多元素,元素里面有很多数据字段,我要把不包含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来便利数组中的元素进行布局了。

猜你喜欢

转载自blog.csdn.net/codingfire/article/details/79804842
今日推荐