ECMAScript 2018 中的 Object.entries 和 Object.fromEntries 方法,让你更好地处理对象
ECMAScript 2018 是 JavaScript 的最新标准,其中包含了一些非常实用的新特性,其中 Object.entries 和 Object.fromEntries 方法就是其中之一。这两个方法的出现,让我们在处理对象时更加方便和高效。
Object.entries 方法
Object.entries 方法可以将一个对象转换成一个由键值对组成的数组,方便我们对对象进行遍历和操作。它的语法如下:
Object.entries(obj)
其中,obj 表示要转换的对象。该方法返回一个由键值对组成的二维数组,其中每个子数组都包含两个元素,第一个元素是键名,第二个元素是键值。下面是一个简单的示例:
const obj = { foo: 'bar', baz: 42 }; console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]
我们可以使用 for...of 循环来遍历这个数组,然后对每个键值对进行操作:
const obj = { foo: 'bar', baz: 42 }; for (const [key, value] of Object.entries(obj)) { console.log(`${key}: ${value}`); } // 输出: // foo: bar // baz: 42
Object.fromEntries 方法
Object.fromEntries 方法是 Object.entries 方法的逆操作,它可以将一个由键值对组成的数组转换成一个对象。它的语法如下:
Object.fromEntries(entries)
其中,entries 表示要转换的数组,该数组由若干个键值对组成,每个键值对都是一个数组,第一个元素是键名,第二个元素是键值。下面是一个简单的示例:
const entries = [ ['foo', 'bar'], ['baz', 42] ]; console.log(Object.fromEntries(entries)); // { foo: 'bar', baz: 42 }
这个方法非常实用,可以用来将一个数组转换成一个对象。例如,我们可以使用 map 方法将一个数组中的元素转换成键值对,然后使用 fromEntries 方法将其转换成一个对象:
const arr = [ ['foo', 1], ['bar', 2], ['baz', 3] ]; const obj = Object.fromEntries(arr.map(([key, value]) => [key, value * 2])); console.log(obj); // { foo: 2, bar: 4, baz: 6 }
这个示例中,我们首先使用 map 方法将原数组中的元素转换成了键值对,然后使用 fromEntries 方法将其转换成了一个对象。
总结
Object.entries 和 Object.fromEntries 方法是 ECMAScript 2018 中非常实用的新特性,它们可以让我们更加方便和高效地处理对象。在实际开发中,我们可以使用这两个方法来简化代码、提高效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65f1a7252b3ccec22fa43e9b