Javascript 如何在单击按钮时从数组中删除对象?

Javascript 如何在单击按钮时从数组中删除对象?,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我想做一个静态的原油操作。当用户在文本框中添加详细信息时,它将存储在对象数组中,然后该对象将打印到表中。现在我想通过删除按钮从数组中删除行。我尝试了.splice(),但它不起作用。数据正在从表中删除,但我想从数组中删除它。我在下面提供我的页面: 带引导的表 输入详细信息 输入ID: 输入名称: 输入城市: 输入电子邮件: 提交重置表 你好,世界,你好 用户ID 用户名 用户电子邮件 用户城市 用户删除 让数据=[]; 函数可重置(){ const confirmMessage=conf

我想做一个静态的原油操作。当用户在文本框中添加详细信息时,它将存储在对象数组中,然后该对象将打印到表中。现在我想通过删除按钮从数组中删除行。我尝试了
.splice()
,但它不起作用。数据正在从表中删除,但我想从数组中删除它。我在下面提供我的页面:


带引导的表



输入详细信息
输入ID:
输入名称:
输入城市:
输入电子邮件:

提交重置表 你好,世界,你好 用户ID 用户名 用户电子邮件 用户城市 用户删除 让数据=[]; 函数可重置(){ const confirmMessage=confirm(“是否确实要重置表数据?它将从表中删除所有数据。您无法撤消此操作。!”; 如果(确认消息){ window.location.reload(); 警报(“表数据已成功清除”); }否则{ 警报(“取消!”; } } 函数printTable(){ const getId=document.getElementById(“id”).value; const getName=document.getElementById(“name”).value; const getCity=document.getElementById(“城市”).value; const getEmail=document.getElementById(“email”).value; 如果(getId!='',getName!='',getCity!='',getEmail!=''){ 常量对象={ id:getId, 名称:getName, 城市:getCity, 电子邮件:getEmail } 数据推送(obj); 打印(数据); $('#id').val(“”); $('#name').val(“”); $(“#城市”).val(“”); $('#email').val(“”); }否则{ 警告(“所有必须遵守的规定”); } } 功能打印(数据){ 让结果=“”; for(设i=0;i
您需要一种方法来识别列表中HTML元素之外的项目。看起来您可以使用id列(尽管通常最好在属性中放置类似的内容)。然后您可以使用过滤器:

将id添加到deleteRow函数

deleteRow(此,${data[i].id})
//删除id为的项。
变量a=[
{id:1},
{id:2},
{id:3},
{id:4},
{id:5},
{id:6},
{id:7},
{id:8},
{id:9}
];
a、 过滤器(item=>item.id!=deleteId);

我想你忘了更新数据数组了。 将deleteRow函数更改为

function deleteRow(btn) {
var cnfrmMessage = confirm("Are you sure want to Delete selected data? You cannot undo this action.");
if(cnfrmMessage == true){
    var row = btn.parentNode.parentNode;
    row.parentNode.removeChild(row);
    // update your data (remove item by row id)
    data = data.filter((item)=>item.id!==$(row).children()[0].innerText);
}
else{
    alert("Cancelled..!!");
}
}
您的数组实际上是一个“数据”。因此,您需要一个唯一的id来删除特定的行或对此执行某些操作。
另一种方法是,您可以比较要删除的行中的所有字段,但这不是一个好的解决方案。

如果我这样做,我将被限制删除id为3的唯一行。。我想删除用户按delete按钮所在的行,如代码所示。@Muhammadhassan,如我所说,从HTML元素中获取id。但您也可以将id添加到deleteRow函数中。@Muhammadhassan这基本上就是我试图用文字解释的。。。这个网站不是真的用来复制粘贴工作代码或家庭作业的。这是为了解释解决方案是的。。您能告诉我如何使用.slice()执行此任务吗?您可以尝试事件委派来获取要删除的当前元素的索引,并在没有该索引的情况下逐片使用