首頁(yè)技術(shù)文章正文

怎樣利用擴(kuò)展運(yùn)算符合并數(shù)組?

更新時(shí)間:2023-08-23 來(lái)源:黑馬程序員 瀏覽量:

擴(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)算符的語(yǔ)法

下面通過(guò)代碼演示擴(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é)果中沒(méi)有逗號(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é)果。

下面通過(guò)代碼演示合并數(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ù)組的合并。


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!