在 JavaScript 中,Object 是一种非常重要的数据类型,它可以用来表示一个对象,对象中包含了一些属性和方法。在 ES8 中,Object 新增加了两个方法:Object.values() 和 Object.entries(),这两个方法可以帮助我们更方便地操作对象。
Object.values()
Object.values() 方法可以返回一个对象中所有属性的值,这些值被存储在一个数组中,并且数组中的顺序与对象中属性的顺序相同。下面是一个使用 Object.values() 方法的示例:
const obj = { a: 1, b: 2, c: 3 }; const values = Object.values(obj); console.log(values); // [1, 2, 3]
在这个示例中,我们定义了一个对象 obj,它包含了三个属性 a、b 和 c,然后我们使用 Object.values() 方法获取了 obj 中所有属性的值,并将这些值存储在了一个数组 values 中。最后,我们使用 console.log() 方法打印出了这个数组。
需要注意的是,Object.values() 方法只会返回对象自身的可枚举属性的值,不会返回继承自原型链上的属性的值。
Object.entries()
Object.entries() 方法可以返回一个对象中所有属性的键值对,这些键值对被存储在一个数组中,并且数组中的顺序与对象中属性的顺序相同。下面是一个使用 Object.entries() 方法的示例:
const obj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(obj); console.log(entries); // [['a', 1], ['b', 2], ['c', 3]]
在这个示例中,我们定义了一个对象 obj,它包含了三个属性 a、b 和 c,然后我们使用 Object.entries() 方法获取了 obj 中所有属性的键值对,并将这些键值对存储在了一个数组 entries 中。最后,我们使用 console.log() 方法打印出了这个数组。
需要注意的是,Object.entries() 方法只会返回对象自身的可枚举属性的键值对,不会返回继承自原型链上的属性的键值对。
使用场景
Object.values() 和 Object.entries() 方法可以帮助我们更方便地操作对象,常见的使用场景包括:
- 遍历对象的属性值或键值对
- 将对象的属性值或键值对转换成数组
- 过滤对象的属性值或键值对
下面是一些使用场景的示例代码:
遍历对象的属性值或键值对
-- -------------------- ---- ------- ----- --- - - -- -- -- -- -- - -- --- ------ ----- -- ------------------- - ------------------- - -- - -- - -- - --- ------ ----- ------ -- -------------------- - -------------------- ----------- - -- -- - -- -- - -- -- -
在这个示例中,我们使用 for...of 循环遍历了 obj 对象的属性值和键值对,并使用 console.log() 方法打印出了这些值。
将对象的属性值或键值对转换成数组
const obj = { a: 1, b: 2, c: 3 }; const values = Object.values(obj); console.log(values); // [1, 2, 3] const entries = Object.entries(obj); console.log(entries); // [['a', 1], ['b', 2], ['c', 3]]
在这个示例中,我们使用 Object.values() 方法和 Object.entries() 方法将 obj 对象的属性值和键值对分别转换成了数组,并使用 console.log() 方法打印出了这些数组。
过滤对象的属性值或键值对
const obj = { a: 1, b: 2, c: 3 }; const filteredValues = Object.values(obj).filter(value => value > 1); console.log(filteredValues); // [2, 3] const filteredEntries = Object.entries(obj).filter(([key, value]) => value > 1); console.log(filteredEntries); // [['b', 2], ['c', 3]]
在这个示例中,我们使用 Object.values() 方法和 Object.entries() 方法获取了 obj 对象的属性值和键值对,并使用 filter() 方法过滤了其中的一部分值或键值对,并使用 console.log() 方法打印出了这些值或键值对。
总结
Object.values() 和 Object.entries() 方法是 ES8 中新增加的两个方法,它们可以帮助我们更方便地操作对象。Object.values() 方法可以返回一个对象中所有属性的值,Object.entries() 方法可以返回一个对象中所有属性的键值对。这两个方法常见的使用场景包括遍历对象的属性值或键值对、将对象的属性值或键值对转换成数组、过滤对象的属性值或键值对等。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/656c1e9bd2f5e1655d4868c8