您好,登錄后才能下訂單哦!
這篇“es6中find和filter有哪些區別”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“es6中find和filter有哪些區別”文章吧。
es6中find和filter的區別:1、在不改變數組的情況下查找數組內符合條件的內容時,find方法返回的結果是對象,filter方法返回的結果是數組;2、若沒有值滿足測試函數,find方法返回的是未定義,filter方法返回一個空數組。
本教程操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。
1. find 和 filter 都是不改變原數組的方法,都是在不改變數組的情況下查找數組內符合條件的內容,區別是find返回的是對象,filter返回的是數組。
示例如下:
const list = [{'name':'1',index:1},{'name':'2'},{'name':'1'}] let list2 = list.find(i=>i.name==='1') let list3 = list.filter(i=>i.name==='1') console.log(list); [ { name: '1', index: 1 }, { name: '2' }, { name: '1' } ] console.log(list2); { name: '1', index: 1 } console.log(list3);[ { name: '1', index: 1 }, { name: '1' } ]
find只查出第一個符合條件的結果,像例子里是直接返回了一個對象而不是數組!,而filter返回全部結果仍然是數組。
注意:find()找到第一個元素后就不會在遍歷其后面的元素,所以如果數組中有兩個相同的元素,他只會找到第一個,第二個將不會再遍歷了。
2. 綜上來看find的查詢效率更高一些,所以在數組的中的數據唯一的話最好使用find
find()
ES6 find() 方法返回通過測試函數的第一個元素的值。如果沒有值滿足測試函數,則返回 undefined。
語法
以下語法中使用的箭頭函數。
find((element) => { /* ... */ } ) find((element, index) => { /* ... */ } ) find((element, index, array) => { /* ... */ } )
filter()
filter() 方法創建一個包含所有通過測試函數的元素的新數組。如果沒有元素滿足測試函數,則返回一個空數組。
語法
filter((element) => { /* ... */ } ) filter((element, index) => { /* ... */ } ) filter((element, index, array) => { /* ... */ } )
共點
高階函數:這兩個函數都是高階函數。
區別
1、通過一個測試功能
find() 返回第一個元素。
filter() 返回一個包含所有通過測試函數的元素的新數組。
2、如果沒有值滿足測試函數
find() 返回未定義;
filter() 返回一個空數組;
以上就是關于“es6中find和filter有哪些區別”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。