成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - Array.find+箭頭函數(shù)

瀏覽:157日期:2023-05-30 18:26:29

問題描述

昨天看到一段代碼,是這樣的:

const pets = [ { type: ’Dog’, name: ’Max’}, { type: ’Cat’, name: ’Karl’}, { type: ’Dog’, name: ’Tommy’},]function findDog(name) { for(let i = 0; i<pets.length; ++i) { if(pets[i].type === ’Dog’ && pets[i].name === name) { return pets[i]; } }}

用短方法后:

pet = pets.find(pet => pet.type ===’Dog’ && pet.name === ’Tommy’);console.log(pet); // { type: ’Dog’, name: ’Tommy’ }

我查了查arr.find方法,定義是array.find(function(currentValue, index, arr),thisValue)

上面的代碼在pet=pets.find()內(nèi)又傳入pet,而沒有參數(shù),想知道這段代碼到底是如何實(shí)現(xiàn)的呢?請(qǐng)諸大神幫解惑

問題解答

回答1:

pet = pets.find(function(pet) { return pet.type === ’Dog’ && pet.name === ’Tommy’;});

把箭頭函數(shù)轉(zhuǎn)換成ES5就是這樣。

find用于找出第一個(gè)符合條件的數(shù)組成員。它的參數(shù)是一個(gè)回調(diào)函數(shù),所有數(shù)組成員依次執(zhí)行該回調(diào)函數(shù),直到找出第一個(gè)返回值為true的成員,然后返回該成員。如果沒有符合條件的成員,則返回undefined。

這些API還是需要多查閱文檔,都是基礎(chǔ)知識(shí)不用轉(zhuǎn)彎的東西。

MDN文檔

es6 手冊(cè)

回答2:

pets.find(pet => pet.type ===’Dog’ && pet.name === ’Tommy’);等效于

pets.find((pet) => { return pet.type ===’Dog’ && pet.name === ’Tommy’;});

箭頭函數(shù)只有一個(gè)參數(shù)的時(shí)候,小括號(hào)可以省略

標(biāo)簽: JavaScript
相關(guān)文章: