js之删除对象中的属性——delete、es6解构赋值、自执行匿名函数

2023-05-16

js之删除对象中的属性——delete、es6解构赋值、自执行匿名函数

实例

const person = {
  name: '李世民',
  gender: 'male',
  age: 24
};

 // 删除目标对象的某一个属性
 //方法一:不改变原始对象
// 1.1、简化版—— js中的自执行匿名函数 (function(){})()
const result = (({name, gender}) => ({name,gender}))(person)
console.log(result) // {name: '李世民', gender: 'male'}
console.log(person) // {name: '李世民', gender: 'male', age: 24}

// 1.2、解释版—— 普通函数
const result = ({name, gender}) => {
  // console.log(name,gender);
   return ({name,gender})
}
// result(person)

console.log(result(person)) // {name: '李世民', gender: 'male'}
console.log(person)  // {name: '李世民', gender: 'male', age: 24}

//方法二: 解构赋值
let {name, ...personUnknowName} = person
console.log(personUnknowName)

// 方法三: delete
delete person.age;
console.log(person); // {name: '李世民', gender: 'male'}

1、基本介绍

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

参数

  • object 对象的名称,或计算结果为对象的表达式。
  • property 要删除的属性。

返回值

  • 对于所有情况都是true,除非属性是一个自身的 不可配置的属性,在这种情况下,非严格模式返回 false。

实例:

const car = {
  color: 'blue',
  brand: 'Ford'
}

delete car.brand  // 写法一
// delete car['brand']  // 写法二
console.log(car)  // {color: 'blue'}

2、用法

2.1、对象属性删除
function deleteFun(){
	this.name = '铁木真';
}

let obj = new deleteFun();
console.log(obj.name);  // 铁木真

delete obj.name;
console.log(obj.name); //undefined
2. 2、删除变量(delelte删除不了变量)
let name = '李世民';
delete name;
console.log(name);  // 李世民
2.3、删除不了原型链中的变量
deleteFun.prototype.age = 18;
delete obj.age;
console.log(obj.age)  // 18

3、es6写法

删除data对象里面的createTime属性

let { createTime, ...params } = data;
console.log(params)

最后这个params就是我们需要的值

const car = {
  color: 'blue',
  brand: 'Ford',
  num:18
}

let { brand, ...params } = car;
console.log(params) // {color: 'blue', num: 18}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js之删除对象中的属性——delete、es6解构赋值、自执行匿名函数 的相关文章

  • js获取数组中最大最小值及对应索引值(下标)

    1 使用原生Js实现该功能 主要是通过循环实现 getMaxMin data key gt if data return false let maxIndex 0 let minIndex 0 let maxNum data 0 key 0
  • ES6 新增的循环方法

    在 ES6 ECMAScript 2015 中 新增了一些循环方法 这些方法可以帮助我们更方便地遍历数组 字符串 Set Map 等数据结构 本文将介绍一些常用的 ES6 循环方法 for of 循环 for of 循环是一种遍历可迭代对象
  • 如何将类数组转换为真正的数组

    开发过程中 有很多时候获取到的是类似数组的对象 比如元素的集合 elementcollection nodeList 以及今天开发时发现classList也是类数组 有时我们需要类数组去调用数组的方法 怎么办 一 遍历类数组 依次将元素放入
  • ES6箭头函数(三)-应用场景

    直接作为事件handler document addEventListener click ev gt console log ev 作为数组排序回调 var arr 1 9 2 4 3 8 sort a b gt if a b gt 0
  • Vue 报错:Duplicate keys detected

    Vue 报错 Duplicate keys detected object Object This may cause an update error 在vue 组件中使用 v for 并且加了key 值 如果key 值不唯一 就会出现这样
  • ES6 method写法与TypeError: is not a constructor

    公司前端最近开始强推ESlint 很多文件需要逐步修改为符合ESlint规则的形式 结果遇到了一个神奇的问题 有一段类似这样的代码 let obj init function el 此处ESlint检查提示 Expect method sh
  • es6查根据对象的某个字段查找到值

    前言 es6查根据对象的某个字段查找到值 实现效果 var 新数组 旧数组 filter item gt item value 0 var arr value 0 label 建筑企业资质 value 1 label 承装 修 试 valu
  • HTTP协议之multipart/form-data请求分析

    无意中发现了一个巨牛的人工智能教程 忍不住分享一下给大家 教程不仅是零基础 通俗易懂 而且非常风趣幽默 像看小说一样 觉得太牛了 所以分享给大家 点这里可以跳转到教程 首先来了解什么是multipart form data请求 根据http
  • 【学一点儿前端】box-sizing以及flex:1的解释

    box sizing box sizing 是一种用于控制CSS盒子模型行为的CSS属性 它的作用是指定元素的宽度和高度的计算方式 以确定元素的总尺寸 具体来说 box sizing 可以有两个可能的取值 1 content box 默认值
  • 前端常用js插件

    浏览目录 包管理器 加载器 打包工具 测试框架 框架 断言 覆盖率 运行器 QA 工具 MVC 框架和库 基于 Node 的 CMS 框架 模板引擎 Flux 数据可视化 时间轴 编辑器 文件 函数式编程 响应式编程 数据结构 日期 字符串
  • delete LEFT JOIN 的一个问题解决办法

    LEFT JOIN 的一个问题解决办法 今天在一个程序后台删除一个东西的时候 却出现了这个问题 Java代码 System Message MySQL Query Error User admin Time 2007 10 20 21 08
  • vue打包及运行白屏,Android低版本适配

    版本支持 对于Android 4 X无法打开的问题 具体表现 1 运行后低版本谷歌浏览器打开后白屏 2 打包后低版本Android系统打不开 白屏 打包前npm run build后低版本浏览器打开白屏 如果低版本打开白屏那么打包后低版本A
  • 多维数组变成一维数组

    这个问题来源于一个朋友曾经问过我的问题 当时是一个二维数组变成一维数组 后面我想整理一下 整理一个多维 并且是不定维的数组 一 二维数组变成一维数组 1 遍历数组 将元素一个个放入新数组 结果 如果元素不是数组 将会报错 下面是改良版 这样
  • js 处理树形结构数据

    js 处理树形结构数据 数据 let data id 1 address 安徽 parent id 0 id 2 address 江苏 parent id 0 id 3 address 合肥 parent id 1 id 4 address
  • 如何正确的关闭 MFC 线程

    前言 近日在网上看到很多人问及如何关闭一下线程 但是我看网上给出的并不详细 而且有些方法还是错误的 小弟在此拙作一篇 不谈别的 只谈及如何正确的关闭MFC的线程 至于Win32和C RunTime的线程暂不涉及 一 关于MFC的线程 MFC
  • 【ES6】Reflect反射机制

    文章目录 一 Reflect概述 二 用法详解 1 Object gt Reflect 2 修改Object方法的返回结果 3 命令式操作 gt 函数式操作 4 与Proxy对象的方法一一对象 5 apply 总结 一 Reflect概述
  • JavaScript 实现html导出为PDF文件

    相信各位前端工程狮们在一些报表项目 管理系统项目中都会遇到在这样的需求 申请报 表格 简历等等图文信息有导出为PDF文件 下面是记录我在项目中完成该需求的代码dome 发布出来也是希望对大家有些帮助 1 整体思路 将HTML元素打印或导出为
  • 上拉加载原理

    实现思路 之前写过一篇触底加载 经过一番苦学钻研 优化一下 样式方面 滚动区域是给固定高度 设置 overflow y auto 来实现 接下来看看js方面的实现 其实也很简单 触发的条件是 可视高度 滚动距离 gt 实际高度 例子我会使用
  • ES6 面试题 | 14.精选 ES6 面试题

    前端开发工程师 主业 技术博主 副业 已过CET6 阿珊和她的猫 CSDN个人主页 牛客高级专题作者 在牛客打造高质量专栏 前端面试必备 蓝桥云课签约作者 已在蓝桥云课上架的前后端实战课程 Vue js 和 Egg js 开发企业级健康管理
  • ES6 面试题 | 13.精选 ES6 面试题

    前端开发工程师 主业 技术博主 副业 已过CET6 阿珊和她的猫 CSDN个人主页 牛客高级专题作者 在牛客打造高质量专栏 前端面试必备 蓝桥云课签约作者 已在蓝桥云课上架的前后端实战课程 Vue js 和 Egg js 开发企业级健康管理

随机推荐