快速上手使用ES8的Object.values()和Object.entries()方法
ECMAScript 2017,即ES8已经发布,其中包含了一些新的语言特性和API。其中,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]
在这个例子中,我们将一个包含三个属性的对象传递给Object.values()方法,方法返回一个包含对象属性值的数组。
Object.values()方法很方便,可以帮助我们将对象属性值转换为数组。这个方法甚至可以用来过滤不需要的属性:
const obj = {a: 1, b: 2, c: 3, d: 4}; const values = Object.values(obj).filter(value => value < 3); console.log(values); //[1, 2]
在这个例子中,我们将一个包含四个属性的对象传递给Object.values()方法,方法返回一个包含对象属性值的数组。然后,我们使用Array.filter()方法过滤掉所有大于等于3的属性值。
当我们需要取出一个对象的属性值或过滤掉不需要的属性时,Object.values()方法是很有用的。
Object.entries()方法
Object.entries()方法可以将一个对象的属性转换为一个键-值对的数组。数组的每个元素都是一个长度为2的数组。
以下是一个简单的例子,展示使用Object.entries()方法的基本用法:
const obj = {a: 1, b: 2, c: 3}; const entries = Object.entries(obj); console.log(entries); //[["a", 1], ["b", 2], ["c", 3]]
在这个例子中,我们将一个包含三个属性的对象传递给Object.entries()方法,方法返回一个包含对象属性键值对的数组。
Object.entries()方法还可以很方便地将对象转换为Map:
const obj = {a: 1, b: 2, c: 3}; const map = new Map(Object.entries(obj)); console.log(map.get("a")); //1 console.log(map.get("b")); //2 console.log(map.get("c")); //3
在这个例子中,我们将一个包含三个属性的对象传递给Object.entries()方法,然后使用Map构造函数将返回的数组转换为Map对象。这时,对象的属性名变成了Map的键,属性值变成了Map的值。
结论
Object.values()和Object.entries()方法是ECMAScript 2017中非常有用的两个方法。使用它们可以让我们更方便地处理对象,取出属性值或键值对。如果您是前端开发者,不妨尝试一下使用这两个方法来简化您的代码。
示例代码:
-- -------------------- ---- ------- -- ----------------- ----- --- - --- -- -- -- -- --- ----- ------ - ------------------- -------------------- ----- -- -- ----- --- - --- -- -- -- -- -- -- --- ----- ------ - ------------------------------- -- ----- - --- -------------------- ----- -- -- ------------------ ----- --- - --- -- -- -- -- --- ----- ------- - -------------------- --------------------- -------- --- ----- --- ----- --- ----- --- - --- -- -- -- -- --- ----- --- - --- ------------------------- -------------------------- --- -------------------------- --- -------------------------- ---
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6713ac9dad1e889fe20f3ac1