數(shù)組(Arrays)

2018-06-15 19:54 更新

數(shù)組是數(shù)組元素的序列,能通過整數(shù)索引方法數(shù)組元素,數(shù)組索引從0開始。

數(shù)組字面量(Array literals)

數(shù)組字面量創(chuàng)建數(shù)組很方便:

  1. > var arr = [ 'a', 'b', 'c' ];

上面的數(shù)組有三個(gè)元素:分別是字符串“a”,“b”, “c”。你可以通過整數(shù)索引訪問它們:

  1. > arr[0]
  2. 'a'
  3. > arr[0] = 'x';
  4. > arr
  5. [ 'x', 'b', 'c' ]

length屬性總表示一個(gè)數(shù)組有多少項(xiàng)元素。

  1. > arr.length
  2. 3

除此之外它也可以用來從數(shù)組上移除尾部元素:

  1. > arr.length = 2;
  2. > arr
  3. [ 'x', 'b' ]

in操作符也可以在數(shù)組上工作。

  1. > 1 in arr // arr在索引為1處是否有元素?
  2. true
  3. > 5 in arr // arr在索引為5處是否有元素?
  4. false

值得注意的是數(shù)組是對象,因此可以有對象屬性:

  1. > arr.foo = 123;
  2. > arr.foo
  3. 123

數(shù)組方法(Array methods)

數(shù)組有許多方法。舉些例子:

  1. > var arr = [ 'a', 'b', 'c' ];
  2. > arr.slice(1, 2) // 復(fù)制元素
  3. [ 'b' ]
  4. > arr.slice(1)
  5. [ 'b', 'c' ]
  6. > arr.push('x') // 在末尾添加一個(gè)元素
  7. 4
  8. > arr
  9. [ 'a', 'b', 'c', 'x' ]
  10. > arr.pop() // 移除最后一個(gè)元素
  11. 'x'
  12. > arr
  13. [ 'a', 'b', 'c' ]
  14. > arr.shift() // 移除第一個(gè)元素
  15. 'a'
  16. > arr
  17. [ 'b', 'c' ]
  18. > arr.unshift('x') // 在前面添加一個(gè)元素
  19. 3
  20. > arr
  21. [ 'x', 'b', 'c' ]
  22. > arr.indexOf('b') // 查找給定項(xiàng)在數(shù)組中的索引,若不存在返回-1
  23. 1
  24. > arr.indexOf('y')
  25. -1
  26. > arr.join('-') // 將元素拼接為一個(gè)字符串
  27. 'x-b-c'
  28. > arr.join('')
  29. 'xbc'
  30. > arr.join()
  31. 'x,b,c'

遍歷數(shù)組(Iterating over arrays)

有幾種方法可以遍歷數(shù)組元素。其中兩個(gè)最重要的是 forEach 和 map。 forEach遍歷整個(gè)數(shù)組,并將當(dāng)前元素和它的索引傳遞給一個(gè)函數(shù):

  1. [ 'a', 'b', 'c' ].forEach(
  2. function (elem, index) { // (*)
  3. console.log(index + '. ' + elem);
  4. });

上面代碼的輸出

  1. 0. a
  2. 1. b
  3. 2. c

注意(*)行的函數(shù)參數(shù)是可省略的。例如:它可以只有一個(gè)參數(shù) elem。 map創(chuàng)建一個(gè)新數(shù)組,通過給每個(gè)存在數(shù)組元素應(yīng)用一個(gè)函數(shù):

  1. > [1,2,3].map(function (x) { return x*x })
  2. [ 1, 4, 9 ]

深入閱讀

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)