ES6中删除对象属性的方法

news/2024/7/10 23:38:08 标签: es6, 前端, javascript

ES6中删除对象属性的方法

文章目录

  • ES6中删除对象属性的方法
  • 1. delete方法删除(单个)
    • 1. 删除方法1
    • 2. 删除方法2
  • 2. Reflect.deleteProperty删除(单个)
  • 3. 解构赋值删除(批量)

1. delete方法删除(单个)

delete 用于删除对象的某个属性,如果没有指向这个属性的引用,那它最终会被释放。

用法: elete object.propertydelete object[property]

1. 删除方法1

<script>
   //obj对象
    const obj = {
        page: 1,
        size: 10,
        sort: 'id',
        order: 'desc',
        model: {},
        ext: [],
        other: null
    };

   //1. 删除单个key方法1
   delete obj.ext
   delete obj.other

   console.log("删除ext与other属性后,",obj)

  // 输出如下
   /*{
       "page": 1,
       "size": 10,
       "sort": "id",
       "order": "desc",
       "model": {}
   }*/
</script>

2. 删除方法2

<script>
   //obj对象
    const obj = {
        page: 1,
        size: 10,
        sort: 'id',
        order: 'desc',
        model: {},
        ext: [],
        other: null
    };

   //2. 删除单个key方法2

   delete obj["sort"]
   delete obj["size","order"] //写多个,只删最会一个,这里会删除掉order,size依然存在

   console.log("删除sort与order属性后,",obj)

   //输出如下
   /*{
       "page": 1,
       "size": 10,
       "model": {},
       "ext": [],
       "other": null
   }*/

</script>

2. Reflect.deleteProperty删除(单个)

Reflect.deleteProperty(object,property)方法等同于 delete obj[property],用于删除对象的性。

该方法返回一个布尔值。如果删除成功,或者被删除的性不存在,返回true;删除失败,被删除的厘性依然存在,返回 false。
如果 Reflect.deleteProperty(object,property)方法的第一个参数不是对象,会报错。

<script>
   //obj对象
    const obj = {
        page: 1,
        size: 10,
        sort: 'id',
        order: 'desc',
        model: {},
        ext: [],
        other: null
    };

   Reflect.deleteProperty(obj,'other')
   console.log("删除后的对象",obj)
   //输出如下:
  /* {
       "page": 1,
       "size": 10,
       "sort": "id",
       "order": "desc",
       "model": {},
       "ext": []
   }*/

</script>

3. 解构赋值删除(批量)

利用解构赋值可删除对象中的多个属性

<script>
   //obj对象
    const obj = {
        page: 1,
        size: 10,
        sort: 'id',
        order: 'desc',
        model: {},
        ext: [],
        other: null
    };

   //批量删除,利用解构赋值的方式(推荐)
   const {sort,order,other,...newObj} = obj
   console.log("删除sort,order,other属性后的新对象",newObj)
   //输出如下:
   /*{
       "page": 1,
       "size": 10,
       "model": {},
       "ext": []
   }*/

</script>

http://www.niftyadmin.cn/n/5447316.html

相关文章

IAB欧洲发布首张泛欧洲数字零售媒体能力矩阵图

2024年1月18日&#xff0c;互动广告署-欧洲办事处&#xff08;IAB Europe)发布了首张泛欧洲数字零售媒体能力矩阵图。为媒体买家提供的新资源概述了在欧洲运营的零售商提供的现场、场外和数字店内零售媒体广告机会。 2024年1月18日&#xff0c;比利时布鲁塞尔&#xff0c;欧洲领…

Stable Diffusion实现光影字效果

昨天下午有人在群里发光影图片&#xff0c;大家都觉得很酷&#xff0c;我没怎么在意。直到早上我在小红书看到有人发同款图片&#xff0c;只是一晚上的时间点赞就超过了8000&#xff0c;而且评论数也很高&#xff0c;也可以做文字定制变现。研究了一下发现这个效果不难实现&…

hive学习记录

问题集合 Q&#xff1a;终端启动hive时报错&#xff1a;/tmp/hive on HDFS should be writable&#xff1f; A&#xff1a;hdfs dfs -chmod 777 /tmp/hive Q&#xff1a;hive&#xff1a; unable to create database path file…错误 A&#xff1a;在hive-site.xml里面添加以…

C语言笔记:函数与程序结构

目录 ACM金牌带你零基础直达C语言精通-课程资料 一.作用域的基本概念 二.函数 1. 函数的定义和使用 2.为什么一定要有函数结构 3.形参与实参 4.函数的声明和定义 5.递归函数 此代码中递归函数执行流程&#xff1a; 练习&#xff1a;求斐波那契数列第n项的值&#xff1a; 欧几里…

c语言:日期识别1

日期识别1 任务描述 X同学最近非常烦&#xff0c;因为他正面对一大堆日期数据愁眉不展&#xff0c;原因是那些日期书写的极其不规范&#xff0c;不仔细辨别根本认不清是哪一天。 以下每个日期中的三个数&#xff0c;年月日的位置是不确定的&#xff0c;假设其中最大的数表示年…

把 Taro 项目作为一个完整分包,Taro项目里分包的样式丢失

现象&#xff1a; 当我们把 Taro 项目作为原生微信小程序一个完整分包时&#xff0c;Taro项目里分包的样式丢失&#xff0c;示意图如下&#xff1a; 原因&#xff1a; 在node_modules/tarojs/plugin-indie/dist/index.js文件里&#xff0c;限制了只有pages目录下会被引入app.w…

鸿蒙ArkUI【开发移植Carbon】

项目介绍 本项目是基于开源项目[Carbon] 进行harmonyos化的移植和开发的。 移植版本&#xff1a;Branches/master 这不是单纯只是API和基本功能展示demo&#xff0c;它是最有用的自定义控件的实现&#xff0c;如设计规范中所示。 Carbon试图&#xff1a; 让事情变得更简单&…

【Linux】详谈命令行参数环境变量

目录 一、浅谈命令行参数 二、环境变量 2.1环境变量的内涵以及理解 2.2PATH环境变量&#xff1a; 2.3输入程序名就能运行我们的程序 2.4系统中的环境变量 2.5导出环境变量 三、main函数的第三个参数 3.1获得环境变量的三种方法 四、本地变量 一、浅谈命令行参数 我们的m…