Object.keys()、Object.values()
时间: 2023-10-12 17:19:51 浏览: 85
Object.keys() 方法返回一个给定对象自身可枚举属性的键名数组,而 Object.values() 方法返回一个给定对象自身可枚举属性的键值数组。
例如,假设我们有以下对象:
```javascript
const obj = {
name: 'Alice',
age: 25,
gender: 'female'
};
```
我们可以使用 Object.keys() 方法获取 obj 对象的所有键名:
```javascript
const keys = Object.keys(obj);
console.log(keys); // ['name', 'age', 'gender']
```
同样地,我们可以使用 Object.values() 方法获取 obj 对象的所有键值:
```javascript
const values = Object.values(obj);
console.log(values); // ['Alice', 25, 'female']
```
需要注意的是,Object.keys() 和 Object.values() 方法只会返回对象自身的可枚举属性,不会返回其原型链上的属性。如果需要获取所有属性,可以使用 Object.getOwnPropertyNames() 方法。
相关问题
对象的常用的操作 Object.assign(对象的深复制/浅复制) Object.defineProperty Object.keys Object.values Object.freeze
在中国的JavaScript中,这几个都是关于对象操作的重要工具:
1. `Object.assign()`:这是一个用于合并多个对象到一个新的对象中的方法。它不会创建新的引用,而是将源对象的属性浅复制到目标对象中,如果目标对象已有同名属性,则会被覆盖。例如:
```
const obj1 = { a: 1 };
const obj2 = { b: 2 };
const newObj = Object.assign(obj1, obj2);
// newObj: {a: 1, b: 2}
```
2. `Object.defineProperty()`:这个方法允许你在运行时修改对象的特性(如添加、删除或修改属性的访问器、可枚举性、可配置性和值)。这对于动态控制属性很有帮助。
3. `Object.keys()` 和 `Object.values()` 分别用于获取对象的所有键名和键对应的值(属性值)以数组形式返回。例如:
```
const obj = { a: 1, b: 2 };
const keys = Object.keys(obj); // ["a", "b"]
const values = Object.values(obj); // [1, 2]
```
4. `Object.freeze()`:此方法用于锁定对象,使其不可添加新属性、删除现有属性或改变其自身和原型链上的任何属性。一旦对象被冻结,所有试图修改的行为都会被阻止。
object.keys和object.values
object.keys和object.values是JavaScript中的两个方法,用于获取对象的所有键和值。object.keys返回一个数组,包含对象的所有键,而object.values返回一个数组,包含对象的所有值。
阅读全文