1. 程式人生 > >向陣列中插入另一個數組

向陣列中插入另一個數組

arr1 = ['a', 'b', 'c'] 
arr2 = ['1', '2', '3'] 
把陣列arr2插入陣列arr1的第二個元素b後面; 
思路: 
插入特定的位置,我們首先會想到splice,但是又不能直接splice(2, 0, arr2),這樣的結果:['a', 'b', ['1', '2', '3'], 'c']; 
那我們怎麼能把arr2的元素一個一個的splice到arr1中呢,有沒有簡單的方式呢? 
答案是肯定,有一個神奇的函式call、apply,(呼叫一個函式的方法用在另一個函式上) 
apply的引數:第一個為所用在的函式,第二個為一個數組, 
所以我們要把arr2 變成一個適合splice的陣列(包含splice前2個引數的陣列) 
在arr2前面插入2個元素:splice前2個引數(開始位置,刪除幾個元素) 
然後把Array的splice方法指向arr1,最重要的是把新得到的arr2整個陣列做為引數傳給arr1! 

這樣就完成了arr2插入arr1的具體位置。 

 

var arr1 = ['a', 'b', 'c']; 
var arr2 = ['1', '2', '3']; 

// 把arr2 變成一個適合splice的陣列(包含splice前2個引數的陣列) 
arr2.unshift(2, 0); 
Array.prototype.splice.apply(arr1, arr2); 
console.log(arr1);