对象相关的操作

一、Object相关的操作

1、Object.keys返回一个对象键名的数组

// 1.返回数组
let obj ={
  'a':1222,
  'm':1222,
  'b':1222,
  'q':1222,
}

let newObj= Object.keys(obj)

console.log(newObj)

// 打印的结果 ['a', 'm', 'b', 'q']


// 2.常与forEach一起使用,将所有值都置为空

 Object.keys(obj).forEach(key=>{obj[key]=' '})

 console.log(obj)

// 打印结果 {a: ' ', m: ' ', b: ' ', q: ' '}

2、Object.assign对象合并

// 1.基本合并

let obj1 = { name: 'hhhh', age: 18 };
let obj2 = { fields: '队形' };

let objs = Object.assign(obj1, obj2);

console.log('objs',objs)

// 打印结果:'objs' {name: 'hhhh', age: 18, fields: '队形'}

// 2.两个对象存在同名键,后边的会覆盖前面的

let obj1 = { name: 'hhhh', age: 18 };

let obj2 = { fields: '队形',name:'ddd' };

let objs = Object.assign(obj1, obj2);

console.log('objs',objs)

// 打印结果:'objs' {name: 'ddd', age: 18, fields: '队形'}

3、Object.create()创建对象属性

create()创建的对象属性是挂载到原型上的,并不是实例上

let obj1= {id:1111}

let obj = Object.create(obj1)

console.log('obj',obj)
  
console.log('obj',obj.__proto__)

打印结果:obj {}
          obj {id:1111}

4、Object.is()判断两个值是否相等

返回布尔值,true表示相等,false表示不等。比较的时候也不会像 == 运算符一样进行隐式转换。

1.将两个不同的对象进行比较
let objA = {
    a:111, b:'mmm'
}

let objB = {
    a:111, b:'mmm'
}

let isEqual = Object.is(objA,objB)

console.log('isEqual',isEqual)

打印结果:false

2.同一个对象比较
let objA = {
    a:111, b:'mmm'
}

let objB = objA

let isEqual = Object.is(objA,objB)

console.log('isEqual',isEqual)

打印结果:true

适用范围:字符串、对象、数字

Object.is() - JavaScript | MDN

5、Object.values() 返回一个包好对象属性值的数组

let obj = {
    a:11,b:22,c:33
}

let arr = Object.values(obj)

console.log('arr:',arr)

打印对象:arr:[11, 22, 33]

6、Object.fromEntries() 将可迭代对象(数组\map)转化为一个键值对对象返回

let arr = [
  [1,2],['a','b']
]

let obj = Object.fromEntries(arr)

console.log('obj:',obj)

打印结果:obj: {1: 2, a: 'b'}

可迭代对象,是指存储了元素的容器对象,可以通过iter()方法或getitem()方法访问到。它的主要作用是

1、提供简便的访问接口,以便获取各种数据结构类型的数据

2、使得数据接口的成员能够按照某种次序排列

二、其他相关的操作

1、判断对象是否有某一属性

(1)hasOwnProperty有的话返回true,否则返回false

let obj = { name: "lily", age: 18 };

obj.hasOwnProperty("name"); 

(2)in 运算符,判断一个属性是否在对象上或者原型链。 如果有则返回 true,没有则返回 false

let obj = { name: "lily", age: 18 };

let b1 = "toString" in obj; // "toString"在对象上找不到就去obj的原型链上找

console.log('b1',b1)

let b2 = "mm" in obj; 

console.log('b2',b2) 

// 打印结果: b1 true
// 打印结果: b2 false

2、删除对象中的某一属性

(1)delete

会将键值对删除干净,但是效率比赋值操作的慢很多

注:使用delete删除数组中的值,会在数组中留下垃圾,并且删除后数组长度不变

使用delete在表单中留下垃圾,null在数组中创建一个“洞”, 而且length不变。

1.删除a属性
let obj = {
    a:1,b:2,c:3,d:4
}

delete obj.a

console.log('obj',obj)

打印结果:obj {b: 2, c: 3, d: 4}

2.删除数组中的值

var array = [1, 2, 3, 4]

delete array[2]

console.log('array',array)

打印结果:array [empty, 2, 3, 4]



(2)赋值——比较常用的方法

let obj = {
    a:1,b:2,c:3,d:4
}

obj.a = ''

console.log('obj',obj)

打印结果:obj {a: '', b: 2, c: 3, d: 4}

文章持续更新中...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的小学究

愿你有所收获

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值