函数中的Javascript数组

函数中的Javascript数组,javascript,arrays,Javascript,Arrays,我的小问题是,当我调用函数go时。我希望当logic=true时返回数组,当logic=false时返回数组,所以我需要删除这个数组中的所有元素,但是这个解决方案不起作用 function go(logic) { if (logic) { return array; array = []; } else { array = []; } $("#ok").click(function(){array.push(1);}); $("#close").click(func

我的小问题是,当我调用函数go时。我希望当logic=true时返回数组,当logic=false时返回数组,所以我需要删除这个数组中的所有元素,但是这个解决方案不起作用

function go(logic) {

if (logic) 
{
    return array;
    array = [];
}
else
{
    array = [];
}

$("#ok").click(function(){array.push(1);});
$("#close").click(function(){array.push(2);});

var array = [];

}

我想你想要这个:

function go(array, logic){
    return logic ? array : [];
}
这使用了。如果满足条件,函数将返回原始数组,否则返回空数组

然后,您可以使用它重置数组,如下所示:

array = go(array, logic);
function go(logic){

   //if logic is false clear array
   if(!logic){
      x = [];
   } 
   //return the array
   //now empty if !logic
   return x;
}
//create array
var x = [];
//push values on click
$('.elem').click(function(){x.push('someval');});

返回后的代码将不会执行

我猜你使用的是全局变量?但我不明白为什么要在函数末尾设置数组变量

function go(logic) {
  if (logic) {
    var tmp = array;
    array = [];
    return tmp;
  } else {
    array = [];
  }
}

如果我做对了,你需要这样做:

array = go(array, logic);
function go(logic){

   //if logic is false clear array
   if(!logic){
      x = [];
   } 
   //return the array
   //now empty if !logic
   return x;
}
//create array
var x = [];
//push values on click
$('.elem').click(function(){x.push('someval');});

数组是否存储在go函数之外?什么不起作用?当
logic=false
时,清空数组,然后将
1
推入其中…?#当我存储在外部时,当我调用函数时,当我返回数组时,我会提醒此数组,数组的次数与调用次数相同#维克,我用elese代码代替数组。按(1)不,这不是我的意思。我多次调用这个函数,当我调用go with true时,我需要返回这个数组,以及我放置的元素。否则,数组为空。你明白我想要什么吗?:)1) 在调用
go
之前,数组是否开始有任何元素?2) 如果(逻辑)?1)是,需要添加哪些元素,因为当我第一次调用go(数组=null)时,所以在我单击ok或close之后。但这次是假的。在它们之后我调用true,所以我需要返回带有元素的数组,在它们之后数组没有elemets。2) 否,例如:$(“#确定”)。单击(函数(){array.push(1);});