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

使用Underscore.js移除JavaScript对象中的键值对

移除对象属性并保留对象结构的解决方案

你用_.without出问题是因为这个方法本来就是处理数组的,把对象传进去会被当成类数组解析,自然返回无键的数组,不符合你的需求。下面给你几种靠谱的解决办法:

Lodash 相关方法

  • _.omit(推荐):专门用来移除对象的指定属性,不会修改原对象,直接返回处理后的新对象
    // 移除单个属性
    const result = _.omit(data, 'email');
    // 移除多个属性
    const result = _.omit(data, ['email', 'phone']);
    
  • _.pick:如果明确知道要保留哪些属性,用这个更直接,只保留指定属性、排除其他
    const result = _.pick(data, ['phone', 'firstName', 'lastName']);
    

原生 JavaScript 方法(无需 Lodash)

  • 解构赋值(ES6+):最简洁的方式,不会修改原对象
    const { email, ...newData } = data;
    // newData 就是你要的 {phone: '3434344332', firstName: 'john', lastName: 'Doe'}
    
  • delete 操作符:允许修改原对象的话可以直接用;不想改原对象就先浅拷贝再删除
    // 修改原对象
    delete data.email;
    // 不修改原对象
    const newData = {...data};
    delete newData.email;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 10:20:43