• 建立一個全新運算過後的 Array,且不會改到原本的 Array Array.prototype.map()
  • 移除 Array 最後一個元素 Array.prototype.pop()
  • 從最後面開始新增元素到 Array Array.prototype.push()

Array.prototype.map()

建立一個全新運算過後的 Array,且不會改到原本的 Array

map
  • js
1
2
3
4
5
6
7
8
9
10
11
var numbers = [1, 5, 10, 15];
var roots = numbers.map(function(x) {
return x * 2;
});
// roots is now [2, 10, 20, 30]
// numbers is still [1, 5, 10, 15]

var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots is now [1, 2, 3]
// numbers is still [1, 4, 9]

也可以用在字串上,例如取得每一個字元的 ASCII

string.map
  • js
1
2
3
4
5
var map = Array.prototype.map;
var a = map.call('Hello World', function(x) {
return x.charCodeAt(0);
});
// a now equals [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]

Array.prototype.pop()

移除 Array 最後一個元素,且當下會回傳被移除的 value

pop
  • js
1
2
3
4
5
6
7
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];

var popped = myFish.pop();

console.log(myFish); // ['angel', 'clown', 'mandarin' ]

console.log(popped); // 'sturgeon'

Array.prototype.push()

從最後面開始新增元素到 Array ,回傳 push 後 Array的長度

push
  • js
1
2
3
4
5
6
7
8
9
10
var numbers = [1, 2, 3];
numbers.push(4);

console.log(numbers); // [1, 2, 3, 4]

var sports = ['soccer', 'baseball'];
var total = sports.push('football', 'swimming');

console.log(sports); // ['soccer', 'baseball', 'football', 'swimming']
console.log(total); // 4

合併兩個 Array 的方式

merge array
  • js
1
2
3
4
5
6
7
8
var vegetables = ['parsnip', 'potato'];
var moreVegs = ['celery', 'beetroot'];
vegetables.push(...moreVegs);

//此方法也行
//Array.prototype.push.apply(vegetables, moreVegs);

console.log(vegetables); // ["parsnip", "potato", "celery", "beetroot"]

參考

參考連結