如何将数组中元素为空的数据过滤掉?
场景:后台返回所有文件列表信息,需要将fileId有值的文件过滤出来回显到页面上。
错误处理:使用map+if判断
let arr = [ { fileId: '1', fileName: '缴费明细表' }, { fileId: '2', fileName: '支付明细表' }, { fileId: null, fileName: '盖章明细表' } ] let newArr = arr.map((item) => { if(item.fileId) { return item } }) console.log(newArr)
显然,结果是不对的,fileId没有值的那一/几项处理为undefined了。那如何解决这个问题呢?
自然是使用filter过滤fileId没有值的那一/几项。
let arr = [ { fileId: '1', fileName: '缴费明细表' }, { fileId: '2', fileName: '支付明细表' }, { fileId: null, fileName: '盖章明细表' } ] let newArr = arr.filter((item) => { return item.fileId }) console.log(newArr)
如果只想拿到fileId有值的那一/几项的fileId呢?
let arr = [ { fileId: '1', fileName: '缴费明细表' }, { fileId: '2', fileName: '支付明细表' }, { fileId: null, fileName: '盖章明细表' } ] let newArr = arr.filter((item) => { return item.fileId }).map((items) => { return items.fileId }) console.log(newArr)