2012-06-23 36 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

你能举个例子吗? –