[React]过滤数据
state数据
this.state = { //搜索内容字段 searchItem: { orderId: '', phoneNum: '', goodsname: '', }, // 订单列表内容 tabList: [ { name: '全部' }, { name: '待付款' }, { name: '待发货' }, { name: '待收货' }, { name: '已完成' }, { name: '已取消' }, { name: '待维权' }, { name: '维权完成' } ], listTitle: [ { name: '商品' }, { name: '单价' }, { name: '数量' }, { name: '总价' }, { name: '收货人' }, { name: '订单状态' }, { name: '订单操作' }, ], }
过滤方法
filters(data: any) { this.filterData(data); return data };
//判断是对象还是数组 filterData(data: any) { let dataType = typeof (data); if (dataType === 'object') { // 验证是不是数组 if (data instanceof Array) { console.log('array') this.filterArray(data); } // 否则就是对象 else { console.log('object') this.filterObject(data); } } }
// 已经是数组 filterArray(data: any) { // 数组遍历 for (let index in data) { let typeItem = typeof (index); if (typeItem === 'string') { data[index] = '' } if (typeItem === 'object') { this.filterData(index); } } }
//已知是对象 filterObject(data: any) { //对象遍历 for (let index in data) { // 判断对象里的值是什么 let typeItem = typeof (index); if (typeItem === 'string') { data[index] = '' } if (typeItem === 'object') { this.filterData(index); } } }
调用方法执行
//清除方法 setClear() { let a:any = this.state.tabList // 传值data const data = this.filters(a) this.setState({ tabList: data }) console.log(this.state.tabList, 2) };