如何翻轉 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(),不傳入參數:...

如何讀取物件的屬性值?

假設你有以下物件: const dog = { name: 'Roger' } 要讀取 name 屬性的值,你可以使用點號語法: dog.name 或者你可以使用方括號屬性存取語法: dog['name'] 這在屬性名稱無法做為有效變數名稱時特別有用,例如 the name: const dog = { 'the name': 'Roger' } dog['the name'] 當你事先不知道屬性名稱,需要以程式動態評估時,方括號屬性存取語法非常有用,就像以下例子,在物件的屬性名稱上迴圈: const dog = { 'the name': 'Roger' } for (const [key, value] of Object.entries(dog)) { console.log(value) }

如何讓 JavaScript 函數進行休眠

了解如何讓你的 JavaScript 函數暫停執行一段時間 有時候你希望你的函數暫停執行一定的秒數或毫秒數。 在 C 或 PHP 這樣的編程語言中,你可以呼叫 sleep(2) 來使程式停止執行 2 秒。Java 使用 Thread.sleep(2000),Python 使用 time.sleep(2),Go 使用 time.Sleep(2 * time.Second)。 JavaScript 沒有原生的 sleep 函數,但由於 promises 的引入(以及 ES2018 中的 async/await),我們可以以非常清晰易讀的方式實現這樣的功能,讓你的函數休眠: const sleep = (milliseconds) => { return new Promise(resolve => setTimeout(resolve, milliseconds)) } 或者,在 Node.js 中,更簡單的方式如下: const { promisify } = require('util') const sleep = promisify(setTimeout) 在 promisify 上了解更多 你可以在 then 回調函數中使用它: sleep(500).then(() => { //執行其他操作 }) 或者在 async 函數中使用它:...

如何讓瀏覽器中的頁面可編輯

瀏覽器中有一個特殊且相當神秘的模式,稱為設計模式(design mode)。 當您將頁面設定為設計模式時,您可以直接在瀏覽器頁面中編輯頁面內容,這對於測試某些原型或檢查新標題的外觀非常方便。 要如何啟用它?在開發者工具控制台中輸入以下指令: document.designMode = 'on' 啟用body元素上的contentEditable也可以達到同樣的效果,像這樣: document.body.contentEditable = true 您可以編輯文字,刪除文字,還可以拖曳圖片來重新定位它們。 要關閉設計模式,輸入以下指令: document.designMode = 'off' 幾乎所有瀏覽器都支援這個功能,包括IE。這功能已經存在很久了,但相當不被人所知。

如果Docker容器立即退出該怎麼辦

如果你使用docker run命令運行一個容器後,容器立即退出,並且每次在Docker Desktop中點擊啟動按鈕後容器都立即退出,這表示存在問題。 解決問題的方法是運行docker logs命令,並在命令的末尾添加容器的名稱: docker logs <container_name> 你也可以在Docker Desktop中點擊容器的名稱,它會顯示一個日誌列表。 在這種情況下,通過快速的谷歌搜索,我意識到我在CMD命令中使用了單引號。 需要注意的是,為了解決這樣的問題,你需要刪除容器,同時刪除映像並重新構建。

字串 localeCompare() 方法

瞭解 JavaScript 字串的 localeCompare() 方法 這個方法可以比較兩個字串,並回傳一個數字(負數、0、正數),告訴我們當前字串是小於、等於還是大於傳入的字串,依據語言環境而定。 語言環境會使用目前的語言環境,或是可以作為第二個參數傳入: 'a'.localeCompare('à') //-1 'a'.localeCompare('à', 'it-IT') //-1 最常用的情境是用來排序陣列: ['a', 'b', 'c', 'd'].sort((a, b) => a.localeCompare(b)) 這與一般使用的排序方式 ['a', 'b', 'c', 'd'].sort((a, b) => (a > b) ? 1 : -1) 的差別在於,localeCompare() 讓我們可以支援全球各地使用的字母排序。 可以傳入作為第三個參數的物件,用來傳遞其他選項。請參考 MDN 上所有可能的選項值。

字串的 codePointAt() 方法

探索 JavaScript 字串的 codePointAt() 方法。 這個方法在 ES2015 中被引入,用於處理無法用一個 16 位元 Unicode 單元表示的 Unicode 字元,而需要使用兩個。 使用 charCodeAt() 你需要取得第一個和第二個單元,然後結合它們。使用 codePointAt() 可以在一次呼叫中取得整個字元。 舉個例子,這個中文字「𠮷」由兩個 UTF-16(Unicode)部分組成: "𠮷".charCodeAt(0).toString(16) //d842 "𠮷".charCodeAt(1).toString(16) //dfb7 如果你結合這兩個 Unicode 字元來建立一個新的字元: "\ud842\udfb7" //"𠮷" 你可以使用 codePointAt() 得到相同的結果: "𠮷".codePointAt(0) //20bb7 如果你結合這兩個 Unicode 字元來建立一個新的字元: "\u{20bb7}" //"𠮷" 想要了解更多關於 Unicode 及如何處理 Unicode 的相關資訊,可以參考Unicode and UTF-8。

字串的 concat() 方法

了解 JavaScript 字串的 concat() 方法的所有功能 將當前字串與作為參數傳遞的字串連接起來。 範例: 'Flavio'.concat(' ').concat('Copes') //'Flavio Copes' 您可以指定一個可變數量的參數,如果這樣做,所有這些參數都將被連接到原始字串中: 'Flavio'.concat(' ', 'Copes') //'Flavio Copes'

字串的 includes() 方法

這篇文章將介紹 JavaScript 中的字串 includes() 方法。 includes() 方法用來判斷一個字串是否包含另一個字串。 'JavaScript'.includes('Script') //true 'JavaScript'.includes('script') //false 'JavaScript'.includes('JavaScript') //true 'JavaScript'.includes('aSc') //true 'JavaScript'.includes('C++') //false includes() 方法也可以接受一個可選的第二個參數,這個參數是一個整數,表示開始搜尋的位置: 'a nice string'.includes('nice') //true 'a nice string'.includes('nice', 3) //false 'a nice string'.includes('nice', 2) //true

字串的 indexOf() 方法

了解 JavaScript 字串的 indexOf() 方法的全部細節 indexOf() 方法會找出參數所指定的字串在目前字串中的位置,如果找不到則回傳 -1。 'JavaScript'.indexOf('Script') //4 'JavaScript'.indexOf('JavaScript') //0 'JavaScript'.indexOf('aSc') //3 'JavaScript'.indexOf('C++') //-1 你可以傳遞第二個參數以設定起始點: 'a nice string'.indexOf('nice') !== -1 //true 'a nice string'.indexOf('nice', 3) !== -1 //false 'a nice string'.indexOf('nice', 2) !== -1 //true