gpt4 book ai didi

javascript - pop() 函数正在更改多个数组

转载 作者:行者123 更新时间:2023-12-03 12:41:42 26 4
gpt4 key购买 nike

我有以下点击处理程序,当点击它时,我从 handsontable 中提取一个数组然后从数组中删除最后一个元素,并将新数组传递给 ajax post。问题是,如果我再次单击该按钮,它将从数组中删除另一个项目。似乎 data var 没有被重置为点击时的所有数据?

$('#view-options').on('click', '#act_add', function() {

var newData = $('#spreadsheet').handsontable("getData");
var data = newData;
newData.pop();
console.log(newData);
console.log(data);

$.ajax({
url: path + "api/v1/apps/add",
data: {"data": newData},
dataType: 'json',
type: 'POST',
success: function(res) {
alertify.success("your data was added to the db");
}
});
});

在前面的代码中 newDatadata 都记录同一个数组,考虑到我只 pop() newData数组

最佳答案

当你这样做时:

var data = newData;

您设置了指针。因此,当您修改 newData 时,data 也会被修改。

使用slice()功能:

var data = [1, 2, 3, 4, 5];
var newData = data.slice();
newData.pop();
console.log(JSON.stringify(data));
console.log(JSON.stringify(newData));

现在您复制了数组(未创建指针)。因此有 2 个不同的数组,您无法更改其中一个数组,而另一个数组也不会更改。

关于javascript - pop() 函数正在更改多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23506084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com