2、合并數組
~~~
var a = [1, 2, 3];
var b = [4, 5, 6];
Array.prototype.push.apply(a, b)
// 或者
a.push.apply(a, b)
// 上面兩種寫法等同于
a.push(4, 5, 6)
a // [1, 2, 3, 4, 5, 6]
~~~
3、<span style="color: #c7254e;">push()</span>:向數組末尾添加一個或多個元素并返回<span style="color: #c7254e;">length</span>。會改變原數組。
4、<span style="color: #c7254e;">pop()</span>:刪除數組的最后一個元素,并返回該元素。會改變原數組。
4.1、<span style="color: #c7254e;">shift()</span>:用于刪除數組的第一個元素,并返回該元素。會改變原數組。
4.2、<span style="color: #c7254e;">unshift()</span>:用于在數組的第一個位置添加元素,并返回添加新元素后的數組長度。注意,該方法會改變原數組。
5、<span style="color: #c7254e;">join()</span>:以參數作為分隔符,將所有數組成員組成一個字符串返回。如果不提供參數,默認用逗號分隔。
~~~
var a = [1, 2, 3, 4];
a.join(' ') // '1 2 3 4'
a.join(' | ') // "1 | 2 | 3 | 4"
a.join() // "1,2,3,4"
~~~
通過<span style="color: #c7254e;">call</span>方法,這個方法也可以用于字符串。
~~~
Array.prototype.join.call('hello', '-')
// "h-e-l-l-o"
~~~
6、<span style="color: #c7254e;">concat()</span>:用于多個數組的合并。它將新數組的成員,添加到原數組的尾部,然后返回一個新數組,原數組不變。
~~~
[1, 2, 3].concat(4, 5, 6)
// [1, 2, 3, 4, 5, 6]
// 等同于
[1, 2, 3].concat(4, [5, 6])
[1, 2, 3].concat([4], [5, 6])
~~~
7、<span style="color: #c7254e;">reverse()</span>:用于顛倒數組中元素的順序,返回改變后的數組。注意,該方法將改變原數組。
~~~
var arr = [1,2,3];
arr.reverse();
// [3,2,1]
~~~
8、<span style="color: #c7254e;">slice()</span>:用于提取原數組的一部分,返回一個新數組,原數組不變。
它的第一個參數為起始位置(從0開始),第二個參數為終止位置(但該位置的元素本身不包括在內)。如果省略第二個參數,則一直返回到原數組的最后一個成員。
~~~
// 格式
arr.slice(start_index, upto_index);
// 用法
var a = ['a', 'b', 'c'];
a.slice(0) // ["a", "b", "c"]
a.slice(1) // ["b", "c"]
a.slice(1, 2) // ["b"]
a.slice(2, 6) // ["c"]
a.slice() // ["a", "b", "c"]
~~~
如果<span style="color: #c7254e;">slice</span>方法的參數是負數,則表示倒數計算的位置。
~~~
var a = ['a', 'b', 'c'];
a.slice(-2) // ["b", "c"]
a.slice(-2, -1) // ["b"]
~~~
9、<span style="color: #c7254e;">splice()</span>:<span style="color: #c7254e;">splice</span>方法用于刪除原數組的一部分成員,并可以在被刪除的位置添加入新的數組成員,返回值是被刪除的元素。注意,該方法會改變原數組。
<span style="color: #c7254e;">splice</span>的第一個參數是刪除的起始位置,第二個參數是被刪除的元素個數。如果后面還有更多的參數,則表示這些就是要被插入數組的新元素。
~~~
// 格式
arr.splice(index, count_to_remove, addElement1, addElement2, ...);
// 用法
var a = ['a', 'b', 'c', 'd', 'e', 'f'];
a.splice(4, 2) // ["e", "f"]
a // ["a", "b", "c", "d"]
~~~
上面代碼從原數組4號位置,刪除了兩個數組成員。
~~~
var a = ['a', 'b', 'c', 'd', 'e', 'f'];
a.splice(4, 2, 1, 2) // ["e", "f"]
a // ["a", "b", "c", "d", 1, 2]
~~~
上面代碼除了刪除成員,還插入了兩個新成員。
起始位置如果是負數,就表示從倒數位置開始刪除。
~~~
var a = ['a', 'b', 'c', 'd', 'e', 'f'];
a.splice(-4, 2) // ["c", "d"]
~~~
上面代碼表示,從倒數第四個位置c開始刪除兩個成員。
如果只是單純地插入元素,splice方法的第二個參數可以設為0。
~~~
var a = [1, 1, 1];
a.splice(1, 0, 2) // []
a // [1, 2, 1, 1]
~~~
如果只提供第一個參數,等同于將原數組在指定位置拆分成兩個數組。
~~~
var a = [1, 2, 3, 4];
a.splice(2) // [3, 4]
a // [1, 2]
~~~