js 数组迭代方法filter结合字符串方法indexOf 过滤对象属性包含某字段的那个对象

 

arr = [
{name: "pid", value: null, ccname: "细项ID"},
{name: "product_name", value: null, ccname: "产品名称"},
{name: "product_num", value: null, ccname: "产品编号"}...]

arr = arr.filter((item)=>{
return item.ccname !==""&&item.ccname.indexOf("c_") == -1&&item.ccname.indexOf("d_")&&item.ccname.indexOf("p_")
})

数组过滤掉对象数组内ccname为空和属性ccname的值包含c_,d_,p_的对象

返回的过滤后的对象重新接收赋值

    fnDataInit(){
      let arr = [];
      let keyArr = [];
      //一:循环对象变成数组键值对形式统一为name:'',value:''的数组 并改变name属性为汉字 套入汉字
      keyArr = Object.keys(this.data.trueLyData)
      // console.log(keyArr)
      keyArr.map((v,i)=>{
          // console.log(v)
          arr.push({
            name:v,
            value:this.data.trueLyData[v],
            ccname:this.data.chinakeyArr[i]
          })
      })
      // console.log(arr)
      //二:过滤汉化后键为空的项
      //方法1
      // let arr2 = []
      // arr.map((va)=>{
      //   // console.log(va.ccname)
      //   if(va.ccname!==""){
      //     arr2.push(va)
      //   }
      // })
      //方法2:
     arr = arr.filter((item)=>{
       return item.ccname !==""&&item.ccname.indexOf("c_") == -1&&item.ccname.indexOf("d_")&&item.ccname.indexOf("p_")
     })
    
      console.log(arr)
      //三:设置到页面可渲染数据中去
      this.setData({
        showDate:arr
      })
    },

 

posted @ 2020-08-17 11:29  少哨兵  阅读(843)  评论(0编辑  收藏  举报