js中的find,findIndex,indexof,includes均可以用來查找數組中的某一項,今天來對比一下. 測試代碼地址 github.com/fanxuewen/e…git
find是用來查找知足條件的第一項,找到了就返回,找不到返回undefined.該方法不會改變原數組。使用方法以下github
var findArr = [1, 2, 3, 4];
var res1 = findArr.find(item => {
return item > 2;
})
var res2 = findArr.find(item => {
return item > 10;
})
console.log('res1', res1);
console.log('res2', res2);
複製代碼
find還有一個比較牛逼的地方,就是不會跳過空項,像map,filter等則會跳過
var findArr1 = [1, , 3];
console.log('--------find---------');
var res1 = findArr1.find((item, index) => {
console.log(item, '----', index)
})
console.log('--------map---------');
findArr1.map((item, index) => {
console.log(item, '----', index);
})
複製代碼
findIndex是用來查找知足條件的第一項索引,找到了就返回該索引,找不到返回-1.數組
var findIndexArr = [1, 2, 3, 4];
var res1 = findIndexArr.findIndex(item => {
return item > 2;
})
var res2 = findIndexArr.findIndex(item => {
return item > 10;
})
console.log('res1', res1);
console.log('res2', res2);
//res1 2
//res2 -1
複製代碼
indexOf()方法返回在數組中能夠找到一個給定元素的第一個索引,若是不存在,則返回-1。
語法:arr.indexOf(searchElement[, startIndex = 0])
startIndex表明搜素的起始位置默認爲0,可選,bash
var indexOfArr = [1, 2, 3, 4];
indexOfArr.indexOf(2) //1
indexOfArr.indexOf(2,2)//-1
indexOfArr.indexOf(9) //-1
複製代碼
includes() 方法用來判斷一個數組是否包含一個指定的值,有則返回 true,不然返回false。測試
var includesArr = [1, 2, 3, 4];
includesArr.indexOf(2) //true
includesArr.indexOf(9) //false
複製代碼
判斷數組中存在某項要用indexof/includesui