2018年7月24日 星期二

【JavaScript】陣列合併concat / […groupA,…groupB] / 類陣列的轉換 / 其餘參數


陣列與物件都是儲存值

var a = [1, 2, 3, 4] //a不直接儲存[1, 2, 3, 4],而是[1, 2, 3, 4]的地址
var b=a  // b儲存了[1, 2, 3, 4]的地址
a.push(5) // [1, 2, 3, 4]改變了
console.log(b)  // [1,2,3,4,5]

取陣列

  • 可以把陣列逐一取出然後return
  • 用法:’[…array]’
var a = [1, 2, 3, 4] 
var b=[...a] //把1,2,3,4一個個拿出來,然後return回b
a.push(5) 
console.log(b)  //扔然是[1,2,3,4]

陣列合併:concat 以及 […groupA,…groupB]

  • groupAa.concat(groupB) 和 […groupA,…groupB]的結果是一樣的
var groupA = [1, 2, 3, 4] 
var groupB = [5, 6, 7, 8]

consoel.log(groupAa.concat(groupB))
console.log([...a, ...b])

類陣列轉變成真陣列

<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
var fakearray = document.querySelectorAll("li")
        console.log(fakearray)  //會得到類陣列,可以使用的方法比較少
var reallyarray = [...fakearray] //把類陣列取出,放入新陣列
        console.log(reallyarray)  //得到一個真正的陣列

其餘參數

  • 當參數太多時,可以用…表示
var money = function (a, ...b) { //參數太多了,所以只要a就好,剩下的就放進去b
    console.log(a, b)
}
money(10, 20, 30, 40, 50)

a:10
b:[20,30,40,50]


沒有留言:

張貼留言

【JavaScript】用物件Mapping的方法

If的寫法 我們希望當變數是a時就回傳1,變數是b就回傳2,變數是c就會回傳3,一般寫法就是用if,但是這樣會很冗 ​ // IF style var word if(word == 'a'){ word = 1 } else if...