繁体   English   中英

使用 for 循环从数组中删除 object 而不影响数组的 rest

[英]Using a for loop to delete an object from an array without affecting the rest of the array

我需要从数组中删除员工。 我需要使用 function 删除该员工的完整 object(所有键值对),该 function 将遍历数组并检查键值firstName并根据名称删除 ZA8CFDE6331BD59EB2AC96F8911C4B66666。

可以说名字是“迈克”。

我想使用 splice 命令和 for 循环。 这就是我目前所拥有的......但我无法让它检测和删除 object。 我只是得到返回的完整列表。

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(filtered);

为此,您必须首先遍历您的员工数组。 我假设它被称为employees

数组splice()方法有两个参数(用于您的目的)。 参数是indexamountToDelete 比如做employees.splic(3, 1); 将从列表中删除第四个员工。

以下是您在上下文中的操作方式:

employees.forEach(function(obj, index){
    for (let key in obj){
        if (obj[key] === "Theo") {
            employees.splice(index, 1);
        }
    }
});
  1. 拿到钥匙。
  2. 遍历密钥,将它们与 object 一起使用以获得价值。
  3. 如果找到,请删除,然后中断,因为无需继续。
  4. 利润。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM