You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中从字典数组中移除多个字典键?

从对象数组中批量移除指定键的实现方案

给定以下代码:

let Remove = ["Last", "Gender"];
let Contact = [{"First": "Bob", "Last": "Jim", "Gender": "M"}, 
                {"First": "Amy", "Last": "Christen", "Gender": "F"}];

需要移除每个联系人对象中Remove数组指定的键,最终得到结果:[{"First": "Bob"}, {"First": "Amy"}],以下是几种实用的实现方法:

方法1:解构赋值+剩余属性(推荐,不修改原数据)

利用ES6解构语法,直接提取要移除的键,保留剩余属性生成新对象:

const result = Contact.map(obj => {
  const { Last, Gender, ...rest } = obj;
  return rest;
});

这种方式不会改动原数组中的对象,返回全新的结果数组,符合函数式编程的纯函数原则,代码简洁直观。

方法2:动态批量移除(适配任意长度的移除键数组)

如果Remove数组的内容是动态生成的,不确定具体键名,可以用遍历的方式处理:

2.1 浅拷贝后删除指定键

先复制原对象避免修改原数据,再遍历移除键数组逐个删除:

const result = Contact.map(obj => {
  const newObj = {...obj}; // 浅拷贝原对象
  Remove.forEach(key => delete newObj[key]);
  return newObj;
});

2.2 用reduce构造新对象

遍历原对象的所有键,只保留不在移除列表中的键:

const result = Contact.map(obj => {
  return Object.keys(obj).reduce((acc, key) => {
    if (!Remove.includes(key)) {
      acc[key] = obj[key];
    }
    return acc;
  }, {} as Record<string, any>);
});

这种方式通过筛选键来构建新对象,逻辑清晰,适合需要自定义保留规则的场景。

内容的提问来源于stack exchange,提问作者Jojo Ceasar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:20:09