詳解ES6數(shù)組方法find()、findIndex()的總結(jié)
本文主要講解ES6數(shù)組方法find()與findIndex(),關(guān)于JS的更多數(shù)組方法,可參考以下:
②ES5新增數(shù)組方法(例:map()、indexOf()、filter()等)
③ES6新增字符串?dāng)U張方法includes()、startsWith()、endsWith()
1. find()
該方法主要應(yīng)用于查找第一個符合條件的數(shù)組元素,即返回通過測試(函數(shù)內(nèi)判斷)的數(shù)組的第一個元素的值。
它的參數(shù)是一個回調(diào)函數(shù),為數(shù)組中的每個元素都調(diào)用一次函數(shù)執(zhí)行。在回調(diào)函數(shù)中可以寫你要查找元素的條件,當(dāng)條件成立為true時,返回該元素,之后的值不會再調(diào)用執(zhí)行函數(shù)。如果沒有符合條件的元素,返回值為undefined。
例:
① 以下代碼在myArr數(shù)組中查找元素值大于5的元素,找到后立即返回,并不會繼續(xù)往下執(zhí)行。返回的結(jié)果為查找到的元素:
const myArr=[1,2,3,4,5,6,7,8,9]; var v=myArr.find(value=>value>5); console.log(v);
結(jié)果:

② 如果把條件改為>10,沒有符合元素,則返回undefined:
const myArr=[1,2,3,4,5,6,7,8,9]; var v=myArr.find(value=>value>10); console.log(v);
結(jié)果:

③ 它的回調(diào)函數(shù)有三個參數(shù)。value:當(dāng)前的數(shù)組元素。index:當(dāng)前索引值。arr:被查找的數(shù)組。
例:
查找索引值為5的元素,結(jié)果顯示6:
const myArr=[1,2,3,4,5,6];
var v=myArr.find((value,index,arr)=>{
return index===5;
});
console.log(v);
結(jié)果:

注意:
- find() 對于空數(shù)組,函數(shù)是不會執(zhí)行的。
- find() 并沒有改變數(shù)組的原始值。
2. findIndex()
- findIndex() 方法返回傳入一個測試條件(函數(shù))符合條件的數(shù)組
第一個元素位置。 - 當(dāng)數(shù)組中的元素在測試條件時返回
true時, findIndex() 返回符合條件的元素的索引位置(注:find()返回的是元素),之后的值不會再調(diào)用執(zhí)行函數(shù)。如果沒有符合條件的元素返回-1(注:find()返回的是undefined)。 - findIndex()與find()的
使用方法相同,findIndex()當(dāng)中的回調(diào)函數(shù)也是接收三個參數(shù),與find()相同。 - findIndex()方法實現(xiàn)是通過循環(huán)遍歷查找。應(yīng)用場景廣泛,可以查找大于等于小于,表達(dá)式可以隨便寫。實際上相當(dāng)于一個for循環(huán),只不過找到了你不需要自己退出。
語法:
array.findIndex(function(currentValue, index, arr), thisValue);
例①:
const myArr=[
{
id:1,
Name:"張三"
},
{
id:2,
Name:"李四"
},
{
id:3,
Name:"王五"
},
{
id:4,
Name:"趙六"
}
];
var i0=myArr.findIndex((value)=>value.id==1);
console.log(i0);
var i1=myArr.findIndex((value)=>value.id==2);
console.log(i1);
var i2=myArr.findIndex((value)=>value.id==3);
console.log(i2);
var i3=myArr.findIndex((value)=>value.id==4);
console.log(i3);
var i4=myArr.findIndex((value)=>value.id==5);
console.log(i4);
結(jié)果:

例②:
const myArr = [1,2,3,4,5,6,7,8,9];
function bigNum(ele){
return ele > 6;
}
console.log(myArr.findIndex(bigNum));
結(jié)果(也就是數(shù)組中第一個大于6的數(shù),即“7”所在位置的索引):

例③:可以用來返回符合大于輸入框中數(shù)字的數(shù)組索引
var ages = [2,4,6,8,10];
function checkAdult(age) {
return age >= document.getElementById("ageToCheck").value;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.findIndex(checkAdult);
}
注意:
- findIndex() 對于空數(shù)組,函數(shù)是不會執(zhí)行的。
- findIndex() 并沒有改變數(shù)組的原始值。
到此這篇關(guān)于詳解ES6數(shù)組方法find()、findIndex()的總結(jié)的文章就介紹到這了,更多相關(guān)ES6 find() findIndex()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js使用for循環(huán)查詢數(shù)組中是否存在某個值
IE8不支持indexOf,因此寫一個for循環(huán)來判斷是否存在,下面是代碼,經(jīng)測試還不錯2014-08-08
關(guān)于Javascript模塊化和命名空間管理的問題說明
最近閑下來的時候,稍微想了想這個問題。關(guān)于Javascript模塊化和命名空間管理2010-12-12
JS用斜率判斷鼠標(biāo)進(jìn)入DIV四個方向的方法
在網(wǎng)上去搜判斷鼠標(biāo)移入div移入移出的方法大同小異,下面小編給大家分享一篇文章關(guān)于js判斷鼠標(biāo)進(jìn)入div方向的代碼,感興趣的朋友一起看看吧2016-11-11
JavaScript實現(xiàn)找出字符串中第一個不重復(fù)的字符
這篇文章主要介紹了JavaScript實現(xiàn)找出字符串中第一個不重復(fù)的字符的方法,需要的朋友可以參考下2014-09-09
alixixi runcode.asp的代碼不錯的應(yīng)用
alixixi runcode.asp的代碼不錯的應(yīng)用...2007-08-08

