向數組中插入另一個數組


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); 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM