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