2014-10-01 21 views
1

我有兩個數組:如何將JavaScript中的特定索引中的元素從一個數組複製到另一個不同類型的數組中?

var arrayA = [ 0, 0, 0 ]; 
var arrayB = new Uint8Array(2); 
arrayB[0] = 1; 
arrayB[1] = 2; 

我想值從arrayB複製到arrayA特定的索引。

例如:

arrayB.copyTo(arrayA, 1); 

arrayA現在會變成:

[0, 1, 2, 0, 0]; 

是否有香草這樣做的JavaScript的不使用迭代的方法嗎?

+1

有一個[很好的解決方案這裏](http://stackoverflow.com/questions/1348178/a-better-way-to-splice-an-array-into-an-array-in-javascript) – A1rPun 2014-10-01 11:21:41

+0

'Array.prototype.splice.apply(arrayA ,[1,0,arrayB]);'將數組添加到索引而不是數組的值。 – user1423893 2014-10-01 11:31:41

+0

感謝您檢查鏈接,您需要:'Array.prototype.splice.apply(array,[index,0] .concat(arrayToInsert));' – A1rPun 2014-10-01 13:02:32

回答

0

這被稱爲「拼接」。我不知道爲什麼你使用Uint8Array構造,但如果你有兩個正常的數組時,這是我會怎麼做:

var arrayA = [0,0,0]; 
 
var arrayB = [1, 2]; 
 

 
var spliceArrays = function(arr1, arr2, index) { 
 
    var arrPart1 = arr1.slice(0, index); 
 
    var arrPart2 = arr1.slice(index); 
 
    return (arrPart1.concat(arr2)).concat(arrPart2); 
 
}; 
 

 
var spliced = spliceArrays(arrayA, arrayB, 1); 
 

 
console.log(spliced);

相關問題