从javascript返回捕获数组

时间:2013-11-25 11:28:10

标签: javascript

我有一些functions会返回array。这些functions将由另一个function调用。我的代码似乎不起作用,任何想法为什么?

function foo1(){
    ..
    ..
    var A[];

    return A;
}

function foo2(){
    ..
    ..
    var B[];

    return B;
}

function catcher(){

    c1=foo1();
    c2=foo2();

    var d=[];
    for(var i = 0; i<a.length; i++){
        d.push(a[i],b[i],c[i]);
    }

}

是否有人可以了解如何从另一个功能访问一个功能。 我怀疑它不存储我想要的东西(在array中)。

3 个答案:

答案 0 :(得分:1)

var A[]可能会给您一个javascript错误。与var A=[]一样使用var d=[]。这显然也适用于var B[]

此外,您的循环似乎引用了示例代码中不存在的变量 - abc - 这是问题的一部分吗?

答案 1 :(得分:0)

除了语法错误之外,我认为还没有任何其他问题。在JS Bin Fiddle

上查看这个小提琴
function foo1() {
  var a = [1,2,3,4,5];
  return a;
}

function foo2() {
  var b = [6,7,8,9,10];
  return b;
}

function init() {
  var a1 = foo1();
  var b1 = foo2();

  var d = [];
  for (var i=0; i<a1.length; i++) {
    d.push(a1[i], b1[i]);
  }

  console.log(d);
}

init();

输出:[1,6,2,7,3,8,4,9,5,10] //按预期

如果您需要别的东西,请告诉我。

答案 2 :(得分:0)

这里有一些问题(有些事情可能会出错)。

首先,你需要真正声明数组,所以而不是var A[];使用var A = [];

其次,在for循环中,您正在检查a数组的length,如果其他arrays有更多(或更少),这将使代码“中断” )里面的物体。

我根据您的示例代码编写了一个示例:

function foo1(){
    var A = ['a', 'is', 'here'];
    return A;
}

function foo2(){
    var B = ['b', 'is', 'here'];
    return B;
}

function foo3(){
    var C = ['c', 'is', 'here'];
    return C;
}

function catcher(){
    var a = foo1();
    var b = foo2();
    var c = foo3();

    var ABC = [];

    //Run for each array, so that it docent break:

    for (var i = 0; i < a.length; i++) {
        ABC.push(a[i]);
    }

    for (var i = 0; i < b.length; i++) {
        ABC.push(b[i]);
    }

    for (var i = 0; i < c.length; i++) {
        ABC.push(c[i]);
    }

    //Print out the result (to verify that it worked):

    for(var i = 0; i<ABC.length; i++){
        console.log(ABC[i]);
    }
}