如何在JavaScript数组中打乱元素

簡短回答: let list = [1, 2, 3, 4, 5, 6, 7, 8, 9] list = list.sort(() => Math.random() - 0.5) 詳細回答: 我有一個需要將JavaScript數組中的元素打亂的需求。 換句話說,我想將數組元素重新排列,使其與之前的順序不同。 從這樣一個數組開始: [1, 2, 3, 4, 5, 6, 7, 8, 9] 我希望每次運行操作時都得到不同的結果,像這樣: [4, 8, 2, 9, 1, 3, 6, 5, 7] [5, 1, 2, 3, 7, 4, 9, 6, 8] [3, 1, 4, 7, 8, 6, 2, 9, 5] 下面是我想出的過程。給定數組list: const list = [1, 2, 3, 4, 5, 6, 7, 8, 9] 我們可以調用sort()方法,該方法接受一個返回值在-0....

如何從 JavaScript 陣列中獲取一組物件的唯一屬性

給定一個物件陣列,如果你想要獲取屬性的值,但不包含重複的值,你可以這樣做。 假設你有一個 bills 陣列,內容如下: const bills = [ { date: '2018-01-20', amount: '220', category: 'Electricity' }, { date: '2018-01-20', amount: '20', category: 'Gas' }, { date: '2018-02-20', amount: '120', category: 'Electricity' } ] 並且你想要提取該陣列中每個項目的 category 屬性的唯一值。 以下是你可以執行的操作: const categories = [...new Set(bills.map(bill => bill.category))] 解釋 Set 是 JavaScript 在 ES6 中新增的一種資料結構,它是一個包含唯一值的集合。我們將使用 map() 獲取的屬性值列表放入其中,這將返回以下陣列: ['Electricity', 'Gas', 'Electricity'] 通過 Set,我們將刪除重複的值。 ... 是 展開運算子,將展開 Set 中的值到一個陣列中。

如何從 JavaScript 陣列中移除項目

在 JavaScript 中,有很多方法可以從陣列中移除項目。學習使用官方推薦的方式,並瞭解其他可以選擇的選項。 以下是一些使用 JavaScript 移除陣列項目的方法。 所有下列方法都不會改變原始陣列,而是創建一個新的陣列。 如果你知道項目的索引 假設你有一個陣列,想要移除位於索引 i 的項目。 一種方法是使用 slice(): const items = ['a', 'b', 'c', 'd', 'e', 'f'] const i = 2 const filteredItems = items.slice(0, i).concat(items.slice(i + 1, items.length)) // ["a", "b", "d", "e", "f"] slice() 方法會使用傳入的索引值創建一個新的陣列。我們從開始到我們想要移除的索引位置創建一個新的陣列,然後將另一個從移除索引位置的下一個位置開始到陣列結尾的陣列連接起來。 如果你知道項目的值 在這種情況下,使用 filter() 是一個很好的選擇,它提供了更加聲明式的方式: const items = ['a', 'b', 'c', 'd', 'e', 'f'] const valueToRemove = 'c' const filteredItems = items.filter(item => item !== valueToRemove) // ["a", "b", "d", "e", "f"] 這裡使用了 ES6 的箭頭函式。你可以使用傳統函式來支援舊版瀏覽器:...

如何檢查 JavaScript 陣列是否包含特定值

給定一個 JavaScript 陣列,你要如何檢查其中是否包含特定項目? 使用陣列實例的 includes() 方法。 例如: ['red', 'green'].includes('red') // true ✅ ['red', 'green'].includes('yellow') // false ❌

如何清空一個 JavaScript 陣列

給定一個 JavaScript 陣列,下面介紹如何清空這個陣列並將所有元素刪除。 有多種方法可以清空一個 JavaScript 陣列。 最簡單的方法是將陣列的長度設為0: const list = ['a', 'b', 'c'] list.length = 0 另一個方法是直接將一個空陣列分配給原始的變數,這樣會改變原始的陣列參考,所以需要使用 let 而不是 const: let list = ['a', 'b', 'c'] list = []

如何翻轉 JavaScript 陣列

我之前需要將一個 JavaScript 陣列進行翻轉,以下是我所做的方法。 給定一個陣列 list: const list = [1, 2, 3, 4, 5] 最簡單和直觀的方法就是調用陣列的 reverse() 方法。 這個方法會修改原始的陣列,所以我可以將 list 声明為常量(const),因為我不需要將 list.reverse() 的結果重新賦值給它: const list = [1, 2, 3, 4, 5] list.reverse() //list 為 [ 5, 4, 3, 2, 1 ] 你可以將這個方法搭配展開運算符(spread operator)一起使用,先複製原始陣列,然後進行翻轉,這樣原始陣列就不會被改變: const list = [1, 2, 3, 4, 5] const reversedList = [...list].reverse() //list 為 [ 1, 2, 3, 4, 5 ] //reversedList 為 [ 5, 4, 3, 2, 1 ] 另一種方法是使用 slice(),不傳入參數:...