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

如何在console.log()内移除对象指定键并输出修改后的对象?

在console.log里直接移除对象属性并输出结果

现有对象:

let obj= {
   'Cow' : 'Moo',
   'Cat' : 'Meow',
   'Dog' : 'Bark'
};

想要执行console.log(JSON.stringify(obj_without_Cow)),直接输出移除Cow键后的对象:

{
   'Cat' : 'Meow',
   'Dog' : 'Bark'
}

已知能用delete、剩余解构这些方法,但就想只在console.log()内部搞定,不用额外写外部代码。就像处理字符串str='xxxyyy'时,直接用console.log(str.replaceAll('x',''))就能移除所有x,但试了console.log(delete obj.Cow)只会返回布尔值,不是修改后的对象,所以求可行办法。


方法1:用剩余解构生成新对象

直接在console.log里写个箭头函数,解构原对象把Cow踢出去,剩下的组成新对象:

console.log(JSON.stringify(({ Cow, ...rest }) => rest)(obj))

要是不想留Cow这个变量名,也可以用下划线占位:

console.log(JSON.stringify(({ Cow: _, ...rest }) => rest)(obj))

说白了就是临时写个函数,把原对象传进去,函数内部解构出Cow(不用就占位),剩下的属性打包成rest返回,直接把这个返回值传给JSON.stringify。

方法2:转数组过滤后转回对象

先把对象拆成键值对数组,过滤掉Cow那一项,再重新拼成对象:

console.log(JSON.stringify(Object.fromEntries(Object.entries(obj).filter(([key]) => key !== 'Cow'))))

步骤很简单:Object.entries(obj)把对象变成[['Cow','Moo'], ['Cat','Meow'], ...]这种数组,filter把键是Cow的项删掉,最后Object.fromEntries把过滤后的数组变回对象。


小提醒

这两种方法都不会改动原对象obj,都是生成新对象输出,不用担心影响原来的数据。要是要删多个属性,改下解构的变量或者过滤条件就行。

内容的提问来源于stack exchange,提问作者marko-36

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:24:08