我有一些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
中)。
答案 0 :(得分:1)
var A[]
可能会给您一个javascript错误。与var A=[]
一样使用var d=[]
。这显然也适用于var B[]
。
此外,您的循环似乎引用了示例代码中不存在的变量 - a
,b
和c
- 这是问题的一部分吗?
答案 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]);
}
}