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:你说得对。我忘记了保存
数组正在获取对数据
数组的引用这一事实。我会更新的。