如何在陣列中搜尋值、索引值?

在JavaScript中,有諸多的方法用以找尋特定的值、位置,
以下整理在陣列中搜尋時,可能會用到的方法
其中所列的方法為:includes、find、findIndex、indexOf及filter

includes

判斷陣列是否包含特定的元素,並以此來回傳 Boolean (true /false)
arr.includes(searchElement[, fromIndex])

1
2
3
const arr = [1, 2, 3];
console.log(arr.includes(2, [fromIndex])) // true
console.log(arr.includes('2', [fromIndex])) // false

find

回傳第一個滿足所提供之測試函式的元素”值”,否則回傳 undefined

1
2
3
4
5
const arr = [5, 12, 8, 130, 44];

const found = arr.find(element => element == 10);

console.log(found);

findIndex

回傳第一個滿足所提供之函式的”索引”,否則回傳 -1

1
2
3
4
5
const arr = [5, 12, 8, 130, 44];

const found = arr.findIndex(element => element == 10);

console.log(found);

indexOf

回傳陣列中第一個被找到之”索引”,否則回傳 -1
arr.indexOf(searchElement[, fromIndex])

1
2
3
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];

console.log(beasts.indexOf('bison'));

filter

會建立一個經指定之函式運算後,由「原陣列」中通過該函式檢驗之元素所構成的「新陣列」

1
2
3
const words = ["spray", "limit", "elite", "exuberant", "destruction", "present", "happy"];

let longWords = words.filter(word => word.length > 6);

用途

用途 陣列方法
確認是否存在? includes
需要取得值 find、filter
需要取得索引值 findIndex、indexof