什么是腳本傳播運算符?它允許可迭代對象(如數組)就地進行擴展。
您知道“腳本傳播”運算符嗎?它由三個點表示 - 是的,點差運算符是著名的“...”。它基本上允許表達式在需要多個元素的位置擴展數組的內容。
讓我以更實際的方式向你們展示:想象一下下面的代碼:
請注意,在本例中,我沒有使用“散布”。通過將數組放在另一個數組中,我們在打印時會得到一個相當不尋常的結果。現在嘗試把“...”在數組中間之前,您可以看到會發生什么,如下所示:arr
此運算符用于在運行時解釋時展開數組或對象的元素。在后一種情況下,中間項已分布在 中。arr
這是 Spread 運算符的默認用法,但它比這更強大,我想在今天的文章中討論的正是這些秘密。
1. 復制帶有跨頁的數組
你知道如何在腳本中復制數組嗎?初學者程序員可能會認為這有效:
但不幸的是,生活并不那么簡單。在這種情況下,不是 的副本,而是它本身,因為兩者的內存引用是相同的。懷疑嗎?然后測試它:arr2 arr arr
您是否注意到,當您在 arr2 中添加項目時,它也出現在 arr 中?那是因為它們是一樣的!執行此操作的正確方法之一是使用特定函數。
如果你已經對JavaScript編程了一段時間,你可能知道切片函數,對吧?它是允許您復制數組的那個。但是您知道嗎,我們也可以使用 Spread 復制數組?
當我們展開數組時,其項的值將復制到另一個數組中。這兩個數組都是獨立的,因此這顯然是復制工作數組的一種方法。
2. 使用跨頁連接數組
如果我想加入兩個數組,該怎么辦?我們已經了解到,使用賦值運算符 (=) 不起作用。求和運算符顯然也不起作用。您知道在 JavaScript 中執行此操作的特定函數嗎?連接:
但是您知道嗎,使用Sample運算符有一種更簡單的方法來執行此操作?
3. 帶有點差的數學運算
您是否知道您可以將 JavaScript 數學函數與傳播結合使用?
讓我們從 Math.max() 開始,這是一個函數,它返回我們作為參數傳遞給它的一組數字中最大的一個。
沒有辦法將數組作為此函數中的參數傳遞,但是使用幫助器函數,是的,盡管它看起來很奇怪:
但是點差呢?
4. 帶跨頁的字符串到數組
如果需要將字符串轉換為字符數組,該怎么辦?就像在C時代一樣,還記得嗎?這個非常簡單,如下圖所示: