HOWTO · JavaScript
在 JavaScript 中獲取陣列的第一個元素
在本文中,我們將學習如何在 JavaScript 中獲取陣列的第一個元素。
本頁內容
JavaScript 陣列使用從 0 開始的索引,因此 array[0] 可以讀取第一個元素,而不會改變陣列。若要取得符合某個條件的第一個元素,請使用 find();只有在也想移除第一個元素時,才使用 shift()。
在 JavaScript 中使用 array[0] 取得陣列的第一個元素
陣列第一個位置的索引是 0,第二個位置是 1,依此類推。這個獨立範例會讀取第一個項目,並在之後印出陣列,讓你確認原始陣列沒有改變。
const fruits = ["apple", "banana", "cherry"];
const firstFruit = fruits[0];
console.log(firstFruit);
console.log(fruits);
範例會印出:
apple
[ 'apple', 'banana', 'cherry' ]
如果陣列是空的,array[0] 的值會是 undefined。當程式需要使用該值時,請先確認陣列中確實有項目。若要依條件搜尋,請使用陣列的 find() 方法,不必自行逐一檢查所有項目。
在 JavaScript 中使用解構賦值取得陣列的第一個元素
陣列解構賦值會將第一個項目指定給變數。例如,const [firstFruit] = fruits; 讀取的值與 fruits[0] 相同,而且不會改變 fruits。如果陣列沒有任何項目,firstFruit 的值會是 undefined。當把一個或多個開頭的項目指定給變數,能讓周圍程式碼更清楚時,可以使用這種寫法。
在 JavaScript 中使用 find() 取得第一個符合條件的陣列元素
當你要找的項目由判斷函式決定時,請使用 find()。它會依序檢查項目,並傳回第一個讓判斷函式結果為真值的項目。如果沒有符合條件的項目,結果會是 undefined;使用結果前請先處理這種情況。
例如,const firstLongWord = words.find(word => word.length > 5); 會找出第一個長度超過五個字元的單字。若不論值為何都要取得第一個項目,直接使用 array[0] 會更簡單。更多資訊請參閱JavaScript 陣列 find 參考資料。目前沒有繁體中文版本的參考頁,因此此連結仍指向英文版。
在 JavaScript 中使用 shift() 取得並移除陣列的第一個元素
不帶引數呼叫 shift(),即可取得並移除第一個項目。它會傳回被移除的值,並改變原始陣列。如果陣列中沒有項目,它會傳回 undefined。只有在確實要變更陣列時才使用此方法;若要讀取而不改變來源陣列,請使用 array[0] 或解構賦值。
為什麼 filter() 通常不是取得第一個符合項目的最佳方式
filter() 會傳回一個新陣列,其中包含所有通過判斷條件的項目。它會繼續遍歷陣列以收集所有符合條件的項目,因此當你只需要一個結果時,這會多做一些工作並建立一個陣列。若要取得第一個符合條件的項目,使用 find() 更清楚,因為它會直接傳回該項目,並在找到後停止。
你可以用 matches[0] 讀取篩選結果中的第一個項目,但只需要一個結果時,建立這份副本並無必要。在該副本上呼叫 shift() 只會移除副本中的項目,不會影響原始陣列。只有在確實需要所有符合條件的項目時,才使用 filter()。