• 從現有 Array 建立新 Array 物件 Array.from()
  • 判斷物件是不是一個 Array Array.isArray()
  • 串接兩個 Array Array.prototype.concat()

Array.from()

用這種方式就可以建立一個新的 Array ,這樣 array2 更改後,就不會動到 array1 了

Array.from
  • js
1
2
3
let array1 = ['a','b','c']
let array2 = Array.from(array1) // 建立新 Array
console.log(array1 === array2) // false

另一種的方法也可以用來複製 Array ,並且也可以將該 Array push 到另一個 Array

...Array
  • js
1
2
3
let array1 = ['a','b','c']
let array2 = ['k',...array1]
console.log(array2) // ['k','a','b','c']

arrow functions 用法

使用 Array arrow functions 可以對要複製的 array 做一些操作,使用起來就跟 C# linq 的 Select 差不多。

arrow functions
  • js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let array = [
{
id : 1,
name : "miles"
},
{
id : 2,
name : "bob"
}];
let result = Array.from(array, x => {
return {
name : x.name,
type : 1
};
});

Array.isArray()

判斷物件是不是一個 Array

Array.isArray
  • js
1
2
3
4
Array.isArray([1, 2, 3]);  // true
Array.isArray({foo: 123}); // false
Array.isArray('foobar'); // false
Array.isArray(undefined); // false

Array.prototype.concat()

這是一個合併 Array 的功能,合併 Array 的時候會按照 Array 的順序合併

Array.prototype.concat
  • js
1
2
3
4
var arr1 = ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f'];
var arr3 = arr1.concat(arr2);
// arr3 is a new array [ "a", "b", "c", "d", "e", "f" ]

也可以 Value 跟 Array 一起合併

Array.prototype.concat
  • js
1
2
3
var alpha = ['a', 'b', 'c'];
var alphaNumeric = alpha.concat(1, [2, 3]);
// results in ['a', 'b', 'c', 1, 2, 3]

參考

參考連結