Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用for循环从数组中删除对象而不影响数组的其余部分_Javascript_Loops - Fatal编程技术网

Javascript 使用for循环从数组中删除对象而不影响数组的其余部分

Javascript 使用for循环从数组中删除对象而不影响数组的其余部分,javascript,loops,Javascript,Loops,我需要从数组中删除一名员工。我需要使用一个函数删除该雇员的完整对象(所有键值对),该函数将在数组中循环并检查键值firstName,然后根据名称删除该对象 让我们假设这个名字是“迈克” 我想使用splice命令和for循环。这就是我目前拥有的。。。但我无法让它检测并删除对象。我刚刚收到了完整的名单 function employeeUpdater() { for (let key in obj) { if (obj[key] === "Theo") { Arr

我需要从数组中删除一名员工。我需要使用一个函数删除该雇员的完整对象(所有键值对),该函数将在数组中循环并检查键值
firstName
,然后根据名称删除该对象

让我们假设这个名字是“迈克”

我想使用splice命令和for循环。这就是我目前拥有的。。。但我无法让它检测并删除对象。我刚刚收到了完整的名单

function employeeUpdater() {
   for (let key in obj) {
      if (obj[key] === "Theo") {
         Array.splice();
      }
   }
   return(obj)
}  
Array.filter()
似乎更适合您的任务

const data=[{name:'Mike'},{name:'Sam'},{name:'Sarah'}];
const filtered=data.filter(p=>p.name!=='Mike');
console.log(过滤)
Array.filter()
似乎更适合您的任务

const data=[{name:'Mike'},{name:'Sam'},{name:'Sarah'}];
const filtered=data.filter(p=>p.name!=='Mike');

console.log(过滤)要做到这一点,您必须首先遍历员工数组。我假设它被称为
employees

array
splice()
方法有两个参数(供您使用)。参数为
index
amountToDelete
。例如,执行
employees.splic(3,1)将从列表中删除第四名员工

以下是您在您的环境中如何做到这一点:

employees.forEach(function(obj, index){
    for (let key in obj){
        if (obj[key] === "Theo") {
            employees.splice(index, 1);
        }
    }
});

为了做到这一点,您必须首先遍历您的员工数组。我假设它被称为
employees

array
splice()
方法有两个参数(供您使用)。参数为
index
amountToDelete
。例如,执行
employees.splic(3,1)将从列表中删除第四名员工

以下是您在您的环境中如何做到这一点:

employees.forEach(function(obj, index){
    for (let key in obj){
        if (obj[key] === "Theo") {
            employees.splice(index, 1);
        }
    }
});
  • 去拿钥匙
  • 循环遍历键,将它们与对象一起使用以获取值
  • 如果找到,请删除,然后断开,因为不需要继续
  • 利润

    var keys = Object.keys(employees);
    
    keys.forEach(k => {
      if (employees[k] == "Theo") {
        delete employees[k];
        break;
      }
    });
    
  • 去拿钥匙
  • 循环遍历键,将它们与对象一起使用以获取值
  • 如果找到,请删除,然后断开,因为不需要继续
  • 利润

    var keys = Object.keys(employees);
    
    keys.forEach(k => {
      if (employees[k] == "Theo") {
        delete employees[k];
        break;
      }
    });
    

  • 欢迎来到SO!您能否显示您的数据结构和实际/预期输出?谢谢请提供您正在使用的数据示例。A换句话说。你可以使用它让其他人更容易复制。欢迎使用SO!您能否显示您的数据结构和实际/预期输出?谢谢请提供您正在使用的数据示例。A换句话说。你可以使用使其他人更容易复制。这将使原始数组发生变异,OP要求的数组不会发生变异。我相信你误读了标题。“从数组中删除一个对象而不影响数组的其余部分”是指在不删除或影响其他元素的情况下删除该对象。因此,您想先制作数组的副本吗?这将使原始数组发生变异,OP请求的数组不会发生变异。我相信您误读了标题。“从数组中删除对象而不影响数组的其余部分”是指在不删除或不影响其他元素的情况下删除对象。因此,是否要先制作数组的副本?