更新時(shí)間:2023-08-23 來源:黑馬程序員 瀏覽量:
擴(kuò)展運(yùn)算符和剩余參數(shù)的作用是相反的,擴(kuò)展運(yùn)算符可以將數(shù)組或?qū)ο筠D(zhuǎn)換為用逗號(hào)分隔的參數(shù)序列。擴(kuò)展運(yùn)算符服3個(gè)點(diǎn)“…”表示。下面介紹擴(kuò)展運(yùn)算符的使用方法進(jìn)行詳細(xì)講解。
擴(kuò)展運(yùn)算符的語法
下面通過代碼演示擴(kuò)展運(yùn)算符在數(shù)組中的使用,示例代碼如下:
<script> let ary = [1, 2, 3]; //...ary相當(dāng)于1,2,3 //輸出結(jié)果:123 console.log(..ary); // 等價(jià)于 console.log(1, 2, 3); //輸出結(jié)果:1 2 3 </script>
上述代碼中,第2行代碼使用let關(guān)鍵字聲明了一個(gè)ary數(shù)組,數(shù)組中有3個(gè)值,分別為1、2、3。第4行代碼在數(shù)組變量名ary的前面添加3個(gè)點(diǎn)“…”,表示將數(shù)組元素拆分成以逗號(hào)分隔的參數(shù)序列。console.log0方法可以接收多個(gè)參數(shù),多個(gè)參數(shù)以逗號(hào)分隔,表示一次輸出多個(gè)內(nèi)容。
使用擴(kuò)展運(yùn)算符將ary數(shù)組拆分成以逗號(hào)分隔的參數(shù)序列后,又將參數(shù)序列放在了console.log()方法中,此時(shí)參數(shù)序列中的號(hào)會(huì)被當(dāng)成console.log0方法的參數(shù)分隔符,所以輸出結(jié)果中沒有逗號(hào)。
利用擴(kuò)展運(yùn)算符合并數(shù)組
擴(kuò)展運(yùn)算符可以用于合并數(shù)組,通常有以下兩種方法,下面分別進(jìn)行講解。首先演示合并數(shù)組的第l種方法,示例代碼如下:
<script> let aryl = [1, 2, 3]; let ary2 = [4, 5, 6]; // …aryl // 表示將ary1數(shù)組拆分成1,2,3 // …ary2 // 表示將ary2數(shù)組拆分成4,5,6 let ary3 - (… hmyl, …ary2); console.log(ary3); // 輸出結(jié)果:(6)[1,2,3,4,5,6] </script>
上述代碼中,第2行代碼使用let關(guān)鍵字聲明了一個(gè)aryl數(shù)組,數(shù)組中有3個(gè)值,分別為1、2、3。第3行代碼聲明了一個(gè)arny2數(shù)組,其中有3個(gè)值,分別為4、5、6。第6行代碼聲明了一個(gè)ary3數(shù)組,其中存儲(chǔ)了aryl和ary2的參數(shù)序列,這樣ary3數(shù)組中就包括aryl數(shù)組和ary2數(shù)組中的值。第7行代碼使用console.log()方法在控制臺(tái)中查看輸出結(jié)果。
下面通過代碼演示合并數(shù)組的第2種方法,示例代碼如下。
<script> let aryl = [1, 2, 3]; let ary2 = [4, 5, 6]; aryl.push(...ary2); console log (ary1); //輸出結(jié)果:(6)[1,2,3,4,5,6] </script>
上述代碼中,第4行代碼的push0方法用于將元素追加到數(shù)組中,這個(gè)方法可以接收多個(gè)參數(shù),并且可以一次將多個(gè)參數(shù)追加到數(shù)組中,參數(shù)之間用逗號(hào)進(jìn)行分隔。因?yàn)椴荒軐ry2數(shù)組本身傳遞給push0方法,所以可以使用擴(kuò)展運(yùn)算符將ary2數(shù)組中的元素拆分成以逗號(hào)分隔的參數(shù)序列,然后將參數(shù)序列直接放到push0方法中,也就是使用aryL.push(.ary2)方法將ary2數(shù)組中的元素追加到aryl數(shù)組中,實(shí)現(xiàn)數(shù)組的合并。