js之删除对象属性的三种方法 & 判断对象中是否有某一属性的四种方法

示例

1、基础版

var a = { id: 18, age: 20, name: "zhangsan", config: { sex: "nan" } };
//filterarr是需要删除的属性
const filterarr = ["name"];
// 这里a是对象,里边是键值对,需要通过对象名[属性名] 找到其对应的值,属性名可以理解为特殊的下标
for (key in a) {filterarr.find((item) => {if (key === item) {delete a[item];}});
}console.log(a);  { id: 18, age: 20, config: { sex: "nan" } }

2、进阶版

var Array = [{id:1,name:'小明'},{id:2,name:'小红'},{id:3,name:'小红',showPinYin:false}]
const isPinYin = Array.find( v => (v.showPinYin !== undefined) );
console.log(isPinYin);  // {id: 3, name: '小红', showPinYin: false}const filterarr = ["name"];
// 这里a是对象,里边是键值对,需要通过对象名[属性名] 找到其对应的值,属性名可以理解为特殊的下标
for (key in isPinYin) {filterarr.find((item) => {if (key === item) {delete isPinYin[item];}});
}console.log(Array); // [{id:1,name:'小明'},{id:2,name:'小红'},{id:3,showPinYin:false}]

1、删除一个对象上的属性

1.1、delete
  • 语法

delete 对象.属性名

const car = {color: '蓝色', age: 18 }delete car.age
console.log(car)  // {color: '蓝色'}delete car['age']
console.log(car)  // {color: '蓝色'}
1.2、es6之解构赋值
const car = {color: '蓝色', age: 18 }var { age, ...newCar } = car
console.log(newCar);   // {color: '蓝色'}
1.3、es6之反射
  • 语法

Reflect.deleteProperty(对象,属性名)

const car = {color: '蓝色', age: 18 }
Reflect.deleteProperty(car,"age");console.log(car);   // {color: '蓝色'}

2、判断对象中是否有某一属性的四种方法

2.1、obj.hasOwnProperty()
const obj = {name:'朱元璋',
}
console.log(obj.hasOwnProperty('name'));  //true
console.log(obj.hasOwnProperty('age'));   //false
2.2、!==
const obj = {name:'朱元璋',
}
console.log(obj.name !== undefined);  //true
console.log(obj.age !== undefined);   //false
2.3、Object.keys
const obj = {name:'朱元璋',
}
Object.keys(obj).indexOf("name") // 0
Object.keys(obj).indexOf("age") // -1
2.4、ES6 属性名 in 对象,返回一个布尔值
const obj = {name:'朱元璋',
}
console.log("name" in obj) // true
console.log("age" in obj) // false

js之删除对象属性的三种方法 判断对象中是否有某一属性的四种方法相关推荐

  1. es6 对象中是否有键值_js/es6判断对象是否为空,并判断对象是否包含某个属性...

    js判断对象为空以及有好几种方法了,但是个人觉得不是特别方便. 比如: 1.把对象通过 JSON.stringify 转为字符串,再判断字符串是否等于 " {} " 2.for i ...

  2. Android中按钮的点击事件的四种写法

    如题,在Android中按钮的点击事件有四种写法,如下图. 界面为四个Button+一个TextView+一个ImageView activity_main布局文件如下: <?xml versi ...

  3. Python中斐波那契数列的四种写法

    在这些时候,我可以附和着笑,项目经理是决不责备的.而且项目经理见了孔乙己,也每每这样问他,引人发笑.孔乙己自己知道不能和他们谈天,便只好向新人说话.有一回对我说道,"你学过数据结构吗?&qu ...

  4. 页面中如何引用外部的HTML(四种方法)

    页面中如何引用外部的HTML(四种方法) 一.总结 一句话总结:a.iframe标签        b.ajax引入代码片段        c.link import的方法导入        d.re ...

  5. 用两种遍历方法判断图中两点是否有路径

    用两种遍历方法判断图中两点是否有路径(可直接测试) 邻接表.图.图的两种遍历以及图中路径的基本概念,可以去自行了解和学习(下面是代码实践)可直接在自己主机测试 #include <iostrea ...

  6. 非常易于理解‘类'与'对象’ 间 属性 引用关系,暨《Python 中的引用和类属性的初步理解》读后感...

    关键字:名称,名称空间,引用,指针,指针类型的指针(即指向指针的指针) 我读完后的理解总结: 1. 我们知道,python中的变量的赋值操作,变量其实就是一个名称name,赋值就是将name引用到一个 ...

  7. 深入理解JVM(三)——JVM之判断对象是否存活(引用计数算法、可达性分析算法,最终判定),Eclipse设置GC日志输出,引用

    本文转载自https://blog.csdn.net/ochangwen/article/details/51406779 本文是基于周志明的<深入理解Java虚拟机> 堆中几乎存放着Ja ...

  8. 依赖注入的三种方式_Java核心知识 Spring原理十 Spring 依赖注入四种方式

    构造器注入 /*带参数,方便利用构造器进行注入*/ public CatDaoImpl(String message){ this. message = message; } setter 方法注入 ...

  9. java判断对象已死_Java的JVM判断对象已死的基本算法分析

    jvm中有各种的垃圾收集器,每个收集器都有各自的算法.但是一切的根本都需要找到找到应该被消除的对象,理解如何找到死亡对象才是理解垃圾收集器的基础. 01两个基本算法 a.引用记数法:对象中加一个引用计 ...

最新文章

  1. python表格筛选打印_按行名进行表格筛选:awkpythonR
  2. C语言中缺少link文件,如何在link文件中给某个C文件的bss分配单独的段?
  3. 手动快捷创建用户和密码
  4. QThreadPool Class的翻译
  5. .NET Core使用微软AI认知服务识别文字语言
  6. asp.net网站编码测试
  7. 新西兰计算机专业研究生一年,【新西兰计算机专业研究生】 - 教外新西兰留学网...
  8. reprint函数的用法c语言,百篇大计敬本年之C语言巅峰之道《五》—— snprintf 是否需要 memset 缓冲区...
  9. Aizu - 2249
  10. C语言函数一章教学,c语言案例教程:函数教学讲义.ppt
  11. 计算机软件怎么共享使用,局域网共享软件,教您局域网共享软件如何使用
  12. 读《白话统计》笔记——第七章
  13. 【.Net】asp.net 把图片从CMYK印刷模式转换为RGB原色模式
  14. 第二讲:高性能计算关键技术和趋势分析
  15. 谷歌官方Android镜像下载(中文站)
  16. Ruby Rails开发资源
  17. npmnjs学习笔记-moddle description编写规则
  18. 直播APP源码iOS 调用系统铃声震动
  19. linux7yum配置后使用报错,Centos7 使用yum安装MariaDB 10.1(报错缺少依赖的解决情况,报错信息贴在最后)-Go语言中文社区...
  20. maven报错解决办法之一

热门文章

  1. mac 终端 root 权限
  2. 鸽巢原理(Pigeonhole Principle)
  3. c语言null和nullptr,NULL和nullptr
  4. 关于小程序中地图的应用(联动搜索,模糊查询,定位导航)
  5. Unity制作人物头像小图标和小地图
  6. 如何导出Navicat 的设计表到excle
  7. vue父子组件传值props
  8. css绘制卡券优惠券_CSS3 可伸缩(响应式)电影票/优惠券/卡片界面组件
  9. “十年内难以落地”的无人驾驶,第一站会在哪里?
  10. 内存测试软件苹果手机,苹果6内存问题,怎么查看iPhone6Plus的闪存内存类型(不用越狱)...