slice
slice()
就是对应String的substring()
版本,它截取Array
的部分元素,然后返回一个新的Array
:
1 var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; 2 arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C'] 3 arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']
注意到slice()
的起止参数包括开始索引,不包括结束索引。
如果不给slice()
传递任何参数,它就会从头到尾截取所有元素。利用这一点,我们可以很容易地复制一个Array
:
1 var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; 2 var aCopy = arr.slice(); 3 aCopy; // ['A', 'B', 'C', 'D', 'E', 'F', 'G'] 4 aCopy === arr; // false
splice
splice()
就是类似于String的substr()
版本,它截取Array
的部分元素,然后返回一个新的Array
:
1 var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle']; 2 // 从索引2开始删除3个元素,然后再添加两个元素: 3 arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite'] 4 arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle'] 5 // 只删除,不添加: 6 arr.splice(2, 2); // ['Google', 'Facebook'] 7 arr; // ['Microsoft', 'Apple', 'Oracle'] 8 // 只添加,不删除: 9 arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素 10 arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']