JavaScript, 如何替換陣列中的元素
如果你知道陣列中的某個元素的索引,你可以通過簡單的賦值來替換它的內容: const items = ['a', 'b', 'c', 'd', 'e', 'f'] const i = 2 items[i] = '--NEW-ITEM--' console.log(items) //[ 'a', 'b', '--NEW-ITEM--', 'd', 'e', 'f' ] 如果你不知道元素的索引,你可能需要首先找到元素在陣列中的索引。
如果你知道陣列中的某個元素的索引,你可以通過簡單的賦值來替換它的內容: const items = ['a', 'b', 'c', 'd', 'e', 'f'] const i = 2 items[i] = '--NEW-ITEM--' console.log(items) //[ 'a', 'b', '--NEW-ITEM--', 'd', 'e', 'f' ] 如果你不知道元素的索引,你可能需要首先找到元素在陣列中的索引。
了解如何在 JavaScript 中在特定索引位置添加項目到陣列 假設您想要在陣列中添加一個項目,但不想將項目附加在陣列的末尾。您想要明確地將其添加到陣列的特定位置。 這個位置被稱為索引。 陣列索引從0開始,因此如果您想要在第一個位置添加項目,則會使用索引0,在第二個位置索引是1,以此類推。 要執行此操作,您將使用陣列的splice()方法。這個函數非常強大,除了我們現在要使用的方式之外,它還允許從陣列中刪除項目。因此,請謹慎操作。 splice()接受3個或更多個引數。第一個是起始索引:我們將開始進行更改的位置。第二個是刪除計數參數。由於我們是要添加到陣列中,所以在我們所有的示例中刪除計數都是0。在此之後,您可以添加一個或多個要添加到陣列中的項目。 以下是一個示例。請看這個陣列: const colors = ['yellow', 'red'] 您可以在yellow之後添加一個項目,如下所示: colors.splice(1, 0, 'blue') //colors === ['yellow', 'blue', 'red'] 您還可以在yellow之後添加多個項目,如下所示: colors.splice(1, 0, 'blue', 'orange') //colors === ['yellow', 'blue', 'orange', 'red'] 注意:結果假設colors仍為['yellow', 'red'] 要在第一個位置添加,請將0作為第一個引數使用,如下所示: colors.splice(0, 0, 'blue') //colors === ['blue', 'yellow', 'red']
假設你想要在陣列的開頭新增一個項目。 要執行這個操作,你可以使用陣列的 splice() 方法。 splice() 方法需要三個或更多的引數。第一個引數是起始索引,也就是我們要開始做變更的位置。第二個是刪除的數量,由於我們是要新增項目,所以在我們的範例中刪除的數量都是 0。在這之後,你可以新增一個或多個要加入陣列中的項目。 要在第一個位置新增,將第一個引數設為 0: const colors = ['yellow', 'red']; colors.splice(0, 0, 'blue'); //colors === ['blue', 'yellow', 'red']
你如何將一個陣列平均分成兩半呢? 使用陣列的 slice() 方法: const list = [1, 2, 3, 4, 5, 6] const half = Math.ceil(list.length / 2); const firstHalf = list.slice(0, half) const secondHalf = list.slice(half) 如果陣列中的元素數量是偶數,結果會平均分成兩半。 如果元素數量是奇數,例如: [1, 2, 3, 4, 5] 結果會是: [ 1, 2, 3 ] [ 4, 5 ]
給定一個陣列,你該如何將其中的重複值移除? 假設你有一個包含一系列基本值的陣列,例如數字或字串。 其中一些元素是重複的。 就像這個例子中: const list = [1, 2, 3, 4, 4, 3] 我們可以使用以下方式產生一個新的陣列,其中不包含重複的值: const uniqueList = [...new Set(list)] 現在,uniqueList 將成為一個新的陣列,其中包含值 [1, 2, 3, 4]。 這是如何運作的呢? Set 是一種新的資料結構,在 ES6 中的 2015 年被引入,它的主要特點是能夠在同一個集合中不能重複儲存資料。請參考我關於 Set 的完整指南。 通過使用解構陣列的方式初始化一個 Set(請看到 ... 操作符在 new Set() 前面),我們將值傳入 Set 中,Set 會自動移除重複的值。然後我們將其轉換為一個陣列,使用方括號 [] 包裹起來。 這個方法對於任何不是物件的值都適用:數字、字串、布林值、符號。
學習如何使用 Array.isArray() 方法來判斷 JavaScript 值是否為陣列。 有時候,當你在函式中傳遞一個物件,你需要檢查它是否為陣列。 如果它是陣列,你可能會執行某些操作,而如果它不是陣列,你可能會執行其他操作。 要如何判斷一個物件是否為陣列呢? 你可以使用 Array 內建物件提供的 isArray() 靜態方法,這個方法在 ECMAScript 5 中被引入: const list = [1, 2, 3] Array.isArray(list) //true