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