在JS中删除对象的某个属性常见的几种方案总结_javascript技巧

在 JavaScript 中,如果你想删除一个对象的某个属性,可以使用 delete 操作符。下面是一个简单的示例:

let obj = { name: 'Alice', age: 25, city: 'New York'};// 删除 'age' 属性delete obj.age;console.log(obj); // { name: 'Alice', city: 'New York' }

delete 操作符会从对象中删除指定的属性。如果属性存在,它会删除该属性并返回 true,如果属性不存在,返回 true,但对象保持不变。注意,delete 不能删除对象的不可配置属性,比如由 Object.defineProperty 设置的属性。

除了 delete 操作符,还有几种方式可以“移除”对象的某个属性,下面是几种常见的方法:

如果你不想修改原始对象,可以使用解构赋值来创建一个新对象,排除掉某个属性。

let obj = { name: 'Alice', age: 25, city: 'New York'};// 使用解构赋值来排除 'age' 属性const { age, ...newObj } = obj;console.log(newObj); // { name: 'Alice', city: 'New York' }

这种方法会创建一个新的对象 newObj,不包含 age 属性,原始对象 obj 不会被改变。

你还可以通过 Object.entries() 将对象转换为键值对数组,然后使用 filter 函数排除掉需要删除的属性,最后用 Object.fromEntries() 将结果转换回对象。

let obj = { name: 'Alice', age: 25, city: 'New York'};// 删除 'age' 属性const newObj = Object.fromEntries( Object.entries(obj).filter(([key]) => key !== 'age'));console.log(newObj); // { name: 'Alice', city: 'New York' }

这种方法也是创建了一个新的对象,不会修改原始对象。

Reflect.deleteProperty()delete 操作符的一个替代方法,它的行为更加一致,并且返回布尔值,表示是否删除成功。

let obj = { name: 'Alice', age: 25, city: 'New York'};// 使用 Reflect.deleteProperty 删除 'age' 属性Reflect.deleteProperty(obj, 'age');console.log(obj); // { name: 'Alice', city: 'New York' }

这种方法会修改原始对象,并返回删除操作的结果(truefalse)。

选择哪种方式取决于你的需求,尤其是是否需要保持原始对象不变。

下面是几种实现方式的示例:

let array = [ { name: 'Alice', age: 25, city: 'New York' }, { name: 'Bob', age: 30, city: 'Los Angeles' }, { name: 'Charlie', age: 35, city: 'Chicago' }];// 删除每个对象的 'age' 属性array.forEach(obj => { delete obj.age;});console.log(array);// [// { name: 'Alice', city: 'New York' },// { name: 'Bob', city: 'Los Angeles' },// { name: 'Charlie', city: 'Chicago' }// ]

这里我们直接遍历每个对象,使用 delete 删除 age 属性。注意,这会修改原始对象。

如果你不想修改原始对象,可以使用 map() 和解构赋值来创建一个新对象并删除指定属性。

let array = [ { name: 'Alice', age: 25, city: 'New York' }, { name: 'Bob', age: 30, city: 'Los Angeles' }, { name: 'Charlie', age: 35, city: 'Chicago' }];// 删除每个对象的 'age' 属性let newArray = array.map(({ age, ...rest }) => rest);console.log(newArray);// [// { name: 'Alice', city: 'New York' },// { name: 'Bob', city: 'Los Angeles' },// { name: 'Charlie', city: 'Chicago' }// ]

这种方法不会修改原始的 array,而是返回一个新的数组 newArray,其中每个对象都没有了 age 属性。

如果对象较复杂,可以用 Object.entries()Object.fromEntries() 结合 map() 来删除属性。

let array = [ { name: 'Alice', age: 25, city: 'New York' }, { name: 'Bob', age: 30, city: 'Los Angeles' }, { name: 'Charlie', age: 35, city: 'Chicago' }];// 删除每个对象的 'age' 属性let newArray = array.map(obj => Object.fromEntries(Object.entries(obj).filter(([key]) => key !== 'age')));console.log(newArray);// [// { name: 'Alice', city: 'New York' },// { name: 'Bob', city: 'Los Angeles' },// { name: 'Charlie', city: 'Chicago' }// ]

这种方式是通过转换为键值对数组,过滤掉不需要的属性,再转换回对象,适用于更复杂的操作。

let array = [ { name: 'Alice', age: 25, city: 'New York' }, { name: 'Bob', age: 30, city: 'Los Angeles' }, { name: 'Charlie', age: 35, city: 'Chicago' }];// 使用 Reflect.deleteProperty 删除每个对象的 'age' 属性array.forEach(obj => { Reflect.deleteProperty(obj, 'age');});console.log(array);// [// { name: 'Alice', city: 'New York' },// { name: 'Bob', city: 'Los Angeles' },// { name: 'Charlie', city: 'Chicago' }// ]

这种方法与 delete 类似,但是使用 Reflect.deleteProperty() 来删除属性。它也会修改原始对象。

到此这篇关于在JS中删除对象的某个属性常见的几种方案的文章就介绍到这了,更多相关JS删除对象某个属性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


本文地址: https://www.earthnavs.com/jishuwz/a8c4e10cd65d6a11c2ff.html
全局中部横幅
CTF导航

黑客街一家做网络安全爱好者导航的web安全网站!专注Hack站点收集,为广大网络安全爱好者提供网站导航,为小白提供黑客入门网站的安全站点收集

流星导航系统

流星导航网,免费收录,致力于简洁高效的上网导航和搜索入口,沉淀最具价值链接,全站无商业推广,简约而不简单。

知道日报作者中心

:。知道日报是百度知道重磅推出的品牌内容栏目,泛生活领域的专业知识问答平台。基于百度知道强大的问答平台基础和良好的用户口碑,知道日报甄选广大网友深感兴趣的泛生活领域问题,涉及生活、科技、互联网、健康、环境、天文等几十个分类,邀请专业机构、专家学者,向读者提供专业优质的回答。

西瓜数据

西瓜数据提供新媒体流量监测及精准营销服务,以数据为依托,为品牌主营销洞察提供支持,提高投放效率,降低投放成本,助力品牌实现营销新目标。

联想

联想_lenovo笔记本电脑_平板电脑_手机_台式机_服务器_外设数码_联想官网

网站目录

名单网网站目录,免费提供网站目录分类检索,收集正规的中文网站,用户自主的网站提交,为各行业分类目录收藏,名单网努力打造互动新颖的网站收录平台。

防黄剂,丁酰肼原药,异戊烯醇321,对苯二酚,异戊醇,异戊烯醛,

济南欣烨化工有限公司是一家集科研,销售防黄剂,丁酰肼原药,防黄剂HN-130,防黄剂HN-150,防黄剂,丁酰肼原药,异戊烯醇321,对苯二酚,异戊醇,异戊烯醛,异丙叉丙酮,异丙醚,异己二醇,二甲硫基甲苯二胺,二乙基甲苯二胺,

717收录网

717收录网是一个综合性的网络资源平台,专注于为用户提供便捷、全面的网址导航服务,同时提供自动审核提交收录功能,致力于为广大网友提供专业的互联网资源导航服务

绿丝成语网

绿丝成语网是一个专注于成语学习与交流的平台。在这里,我们为用户提供丰富的成语资源,包括成语解释、用法示例和相关故事,帮助大家更好地理解和运用成语。无论是学生、教师,还是成语爱好者,都能在这里找到有趣的成语知识,提升语言表达能力。加入我们,一起探索成语的魅力!

Google

该站点未添加描述description...