拼接无法删除 javascript 中的第一个元素
splice can't remove the first element in javascript
在 angular2 中,我的 HTML 在 javascript 中调用 removeThisForm。该事件是文件数组的一个对象。对于文件数组中的每个对象,我在 angular2 中生成一个表单。
(click)=removeThisForm(event)
在 javascript 中,我正在尝试删除传入的文件。
removeThisForm(file) {
var removableIndex = arr.indexOf(file);
if (removeIndex >= 0) {
arr = arr.splice(removableIndex);
}
我可以删除任何传入的表单,除了第一个。我尝试了 shift()、slice() 和 splice(0,1)。当我拼接 (0,1) 时,出现 "Form submission canceled because the form is not connected".
错误
您省略了将第二个参数传递给 Array.prototype.splice 方法(一个表示要删除的元素数的整数)。试试这个:
removeThisForm(file) {
var removableIndex = arr.indexOf(file);
if (removeIndex >= 0) {
arr.splice(removableIndex, 1);
}
}
此外,Array.prototype.splice
方法 returns 一个包含已删除元素的数组。因此,你不能说:
arr = arr.splice(removableIndex, 1);
因为它将用 Array.prototype.splice
方法的返回值覆盖您的 arr
。
在 angular2 中,我的 HTML 在 javascript 中调用 removeThisForm。该事件是文件数组的一个对象。对于文件数组中的每个对象,我在 angular2 中生成一个表单。
(click)=removeThisForm(event)
在 javascript 中,我正在尝试删除传入的文件。
removeThisForm(file) {
var removableIndex = arr.indexOf(file);
if (removeIndex >= 0) {
arr = arr.splice(removableIndex);
}
我可以删除任何传入的表单,除了第一个。我尝试了 shift()、slice() 和 splice(0,1)。当我拼接 (0,1) 时,出现 "Form submission canceled because the form is not connected".
错误您省略了将第二个参数传递给 Array.prototype.splice 方法(一个表示要删除的元素数的整数)。试试这个:
removeThisForm(file) {
var removableIndex = arr.indexOf(file);
if (removeIndex >= 0) {
arr.splice(removableIndex, 1);
}
}
此外,Array.prototype.splice
方法 returns 一个包含已删除元素的数组。因此,你不能说:
arr = arr.splice(removableIndex, 1);
因为它将用 Array.prototype.splice
方法的返回值覆盖您的 arr
。