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

本文介绍了JavaScript中删除对象属性的三种方法,包括使用`delete`关键字、解构赋值和`Reflect.deleteProperty`。同时,还详细阐述了检查对象是否包含特定属性的四种方法,如`hasOwnProperty`、不等于`undefined`、`Object.keys`和`in`操作符。这些技巧对于理解和操作JavaScript对象属性至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值