gpt4 book ai didi

javascript - .splice() 不断删除数组的最后一项

转载 作者:行者123 更新时间:2023-11-30 09:11:05 25 4
gpt4 key购买 nike

我在我的表单上创建了一个功能,我可以通过单击一个按钮为多个图像添加多个文件输入,这按预期工作。现在,当我尝试使用 .splice 删除输入字段时,它会不断删除我的输入字段所在的数组的最后一项,而不是具有匹配索引的输入字段。几个小时以来,我一直在尝试解决这个问题,但我似乎找不到解决方案。我希望有人能告诉我我做错了什么。

这是添加新输入字段的方法:

addInputField() {

i++

this.values.links.push({
id: i,
url: ''
});
}

这是删除输入框的代码:

deleteInputField(index) {

this.values.links.splice(index, 1);

const items = this.values.links.filter(item => {

return item.id > index
});

items.forEach(function (item) {
item.id = item.id -1;
});
}

这是删除输入字段的按钮:

<v-icon
medium
v-if="link.id > 0"
color="#FF0000"
class="ma-4"
@click="deleteInputField(link.id)"
>

最佳答案

如果你想传递id(link.id),就用这个函数。

function deleteInputField(itemId){
this.values.links = this.values.links.filter(item => {
return item.id !== itemId;
});
}

这将遍历数组并返回除与传递的 itemId 具有相同 id 之外的所有数组。

否则,只需在@click 处理程序中传入来自 v-for 循环的索引

deleteInputField(index) {
this.values.links.splice(index, 1);
}

关于javascript - .splice() 不断删除数组的最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58951367/

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