應(yīng)用場(chǎng)景一個(gè)表格的過濾篩選,可能涉及多個(gè)篩選條件,this.filter里面存的是所有篩選條件的v-model狀態(tài)的一個(gè)對(duì)象,this.tableData是從后端獲取的所有原始表格數(shù)據(jù)的數(shù)組,this.filteredTableData是過濾后的表格數(shù)據(jù)的數(shù)組。代碼 filterTableData() { this.filteredTableData = this.tableData.map((item, index) => { Object.keys(this.filter).forEach(key => { if (this.filter[key] && item[key] && item[key] === this.filter[key]) { console.log(item) return item } }) }) console.log(this.filteredTableData) // this.paginateTableData() },問題這樣寫,會(huì)使得第二個(gè)console.log(this.filteredTableData)拿到一個(gè)全部是undefined的數(shù)組。這樣的錯(cuò)誤應(yīng)該是因?yàn)閒orEach沒法用return 跳出循環(huán)。所以我想知道:在使用map 且map內(nèi)部最好不使用變量(使用也行吧,只是擔(dān)心性能)的情況下,如何實(shí)現(xiàn)這個(gè)函數(shù)?如果this.filteredTableData的數(shù)據(jù)量特別大,有沒有什么更好的辦法?
map與forEach的嵌套遍歷,如何返回一個(gè)數(shù)組?
尚方寶劍之說
2018-11-08 14:13:33