2012-06-23 37 views
0

我在ActionScript 3.0中添加了兩個矩陣(或可能多個)。在數組中添加索引

現在我的問題是如何添加索引數組是這樣的東西?

array1[1,2,3,4] + array2[2,4,5,6] = answer[3,6,8,10] 

回答

0

此功能增加了傳遞給它的所有陣列:

function sumOfArrays(...args):Array 
{ 
    var sum:Array = []; 
    var arrays:Array = []; 
    var longestArrayLength:uint = 0; 

    for (var i:int = 0, n:int = args.length; i < n; i++) 
    { 
     if (args[i] is Array) 
     { 
      arrays.push(args[i]); 
      longestArrayLength = args[i].length > longestArrayLength ? args[i].length : longestArrayLength; 
     } 
    } 

    for (var j:int = 0; j < longestArrayLength; j++) 
    { 
     sum[j] = 0; 

     for (i = 0; i < n; i++) 
     { 
      sum[j] += isNaN(arrays[i][j]) ? 0 : arrays[i][j]; 
     } 
    } 

    return sum; 
} 

它可以像這樣使用: var sum:Array = sumOfArrays(array1, array2);

+0

哇......真的很有魅力..我無話可說..這正是我所需要的。非常感謝 –

0

這是不可能的。數組只允許通過一個索引訪問。你必須爲此自行編寫一個方法。但是請注意,0,1,2,4,5等答案中將引用null。

+0

你知道這個方法你指的是算法?我在php中看到了一個使用array_map和array_sum的教程,但我認爲在as3中沒有類似的方法,所以我必須創建一個。 –

+0

不,它基本上是4個數組,兩個源數組和兩個索引。其餘的將通過for循環的方法構造。 –

+0

你能舉個例子嗎? –