随着 ECMAScript 2019 的发布,JavaScript 语言又迎来了一些新的特性和方法。其中,Object.fromEntries() 方法和 Object.entries() 方法是两个比较实用的方法,本文将详细介绍它们的用法和指导意义。
Object.fromEntries() 方法
Object.fromEntries() 方法是一个静态方法,可以将一个包含键值对的数组转换成一个对象。这个方法的主要作用是在对象和数组之间进行转换,它的语法如下:
Object.fromEntries(iterable)
其中,iterable 是一个键值对的数组,每个元素都是一个表示键值对的数组,键值对的第一个元素是键名,第二个元素是键值。
下面是一个使用 Object.fromEntries() 方法的示例:
const entries = [ ['foo', 'bar'], ['baz', 42] ]; const obj = Object.fromEntries(entries); console.log(obj); // { foo: 'bar', baz: 42 }
在这个示例中,我们定义了一个包含两个键值对的数组 entries,然后使用 Object.fromEntries() 方法将它转换成了一个对象 obj。
需要注意的是,如果一个键名在 iterable 中出现多次,那么最后一个键值对会覆盖之前的所有键值对。
Object.fromEntries() 方法的应用场景比较广泛,例如可以用它来将 URLSearchParams 对象转换成一个对象:
const searchParams = new URLSearchParams('foo=bar&baz=42'); const obj = Object.fromEntries(searchParams); console.log(obj); // { foo: 'bar', baz: '42' }
Object.entries() 方法
Object.entries() 方法是一个静态方法,可以将一个对象转换成一个键值对的数组。这个方法的语法如下:
Object.entries(obj)
其中,obj 是需要转换成数组的对象。
下面是一个使用 Object.entries() 方法的示例:
const obj = { foo: 'bar', baz: 42 }; const entries = Object.entries(obj); console.log(entries); // [ ['foo', 'bar'], ['baz', 42] ]
在这个示例中,我们定义了一个对象 obj,然后使用 Object.entries() 方法将它转换成了一个键值对的数组 entries。
Object.entries() 方法的应用场景也比较广泛,例如可以用它来遍历一个对象的属性:
const obj = { foo: 'bar', baz: 42 }; for (const [key, value] of Object.entries(obj)) { console.log(`${key}: ${value}`); }
在这个示例中,我们使用 for...of 循环遍历了 obj 的所有属性,并输出了它们的键名和键值。
总结
Object.fromEntries() 方法和 Object.entries() 方法是 ECMAScript 2019 新增的两个方法,它们可以方便地在对象和数组之间进行转换,并且具有广泛的应用场景。需要注意的是,这两个方法在一些老版本的浏览器中可能不被支持,需要进行兼容处理。
希望本文能够对你理解 Object.fromEntries() 方法和 Object.entries() 方法有所帮助,并且能够在实际开发中运用它们。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6573cdaad2f5e1655dcf5049