Javascript jquery在数组中保存数据

Javascript jquery在数组中保存数据,javascript,jquery,Javascript,Jquery,我想保存每次单击的数据并将其添加到数组中。我试过这个 var data = []; var save = []; s=0; i=0; some called function(){ data[i++] = some result; data[i++] = some other result; } $('#someelement').click(function(){ save[s++] = data; console.log(save); // for debugging i = 0

我想保存每次单击的数据并将其添加到数组中。我试过这个

var data = [];
var save = [];
s=0;
i=0;

some called function(){
  data[i++] = some result;
  data[i++] = some other result;
}

$('#someelement').click(function(){
save[s++] = data;
console.log(save); // for debugging
i = 0;
data = '';
});

第一次保存有效,但之后我只添加了空数组。有什么建议吗

如果试图将当前数据内容添加到保存中的单个元素,请使用:

…或者,如果您希望将
数据中的当前值添加到
保存
,请使用,将
数据
重置回空数组:

$('#someelement').click(function(){
    save = save.concat(data);
    console.log(save); // for debugging
    data = [];
});

如果试图将当前数据内容添加到“保存”中的单个元素,请使用:

…或者,如果您希望将
数据中的当前值添加到
保存
,请使用,将
数据
重置回空数组:

$('#someelement').click(function(){
    save = save.concat(data);
    console.log(save); // for debugging
    data = [];
});

这是因为要用字符串替换数组

data = '';
您应该将其替换为新阵列

data = [];

或者重新使用
数据
数组,方法是将
数据
的浅层副本添加到
保存
,然后清除
数据

save[s++] = data.slice();

data.length = i = 0;

这允许引用了
数据的任何其他代码保留其引用,以便始终查看正在更新的
数据。

这是因为您正在用字符串替换数组

data = '';
您应该将其替换为新阵列

data = [];

或者重新使用
数据
数组,方法是将
数据
的浅层副本添加到
保存
,然后清除
数据

save[s++] = data.slice();

data.length = i = 0;
这允许引用了
数据的任何其他代码保留其引用,以便始终查看正在更新的
数据。

您可以使用以下方法:

data[data.length] = <some value>;
data[data.length]=;
您可以使用以下功能:

data[data.length] = <some value>;
data[data.length]=;

您可能希望尝试制作数据数组的副本:

save[s++] = data.slice(0);

这样,数据数组发生的任何情况都不会影响保存数组的项。

您可能需要尝试制作数据数组的副本:

save[s++] = data.slice(0);

这样,数据数组的任何变化都不会影响保存数组的项。

您应该使用[]创建新数组

下面是一个工作示例:

<script>
   var data = [];
   var save = [];
   s=0;
   i=0;

function addRes(){
    data[i++] = 'some result';
    data[i++] = 'some other result';
}

$('#someelement').click(function(){
    addRes();
    save[s++] = data;
    console.log(save); // for debugging
    i = 0;
    data = [];
});
</script>

var数据=[];
var save=[];
s=0;
i=0;
函数addRes(){
数据[i++]=“某些结果”;
数据[i++]=“其他一些结果”;
}
$('#someelement')。单击(函数(){
地址();
保存[s++]=数据;
console.log(保存);//用于调试
i=0;
数据=[];
});

您应该使用[]创建新数组

下面是一个工作示例:

<script>
   var data = [];
   var save = [];
   s=0;
   i=0;

function addRes(){
    data[i++] = 'some result';
    data[i++] = 'some other result';
}

$('#someelement').click(function(){
    addRes();
    save[s++] = data;
    console.log(save); // for debugging
    i = 0;
    data = [];
});
</script>

var数据=[];
var save=[];
s=0;
i=0;
函数addRes(){
数据[i++]=“某些结果”;
数据[i++]=“其他一些结果”;
}
$('#someelement')。单击(函数(){
地址();
保存[s++]=数据;
console.log(保存);//用于调试
i=0;
数据=[];
});

使用
.push()
附加到JavaScript数组中,而不是使用递增索引
data.push('some result')
不要将
data
设置为单击处理程序末尾的空字符串。@nnnnnnnn我知道,一个电话分散了我的注意力,使我无法用
.push()
删除我愚蠢的注释附加到JavaScript数组中,而不是弄乱递增的索引
data.push('some result')
不要将
data
设置为单击处理程序末尾的空字符串。@nnnnnnnn我知道,一个电话分散了我的注意力,使我无法删除愚蠢的注释。我可能不想使用
data.length=0
重新使用相同的数组,因为
save
的所有元素都将指向同一(空)数组…@nnnnnn:你说得对。我忘记了
保存
数组正在获取对
数据
数组的引用这一事实。我会更新。可能不想用
data.length=0
恢复相同的数组,因为
save
的所有元素都将指向相同的(空)数组…@nnnnnn:你说得对。我忘记了
保存
数组正在获取对
数据
数组的引用这一事实。我会更新的。