在 ECMAScript 2018 中,新增了一个 Object.fromEntries() 方法,该方法可以将一个包含键值对的数组转换为一个对象。这个方法可以用于前端开发中,使得我们能够更加方便地处理数据。
Object.fromEntries() 方法的使用
Object.fromEntries() 方法接收一个数组作为参数,该数组中的每个元素都是一个包含两个元素的子数组,第一个元素表示键,第二个元素表示值。
-- -------------------- ---- ------- ----- ------- - - -------- ------ ------- ---- ---------- ------- -- ----- --- - ---------------------------- ----------------- -- - ----- ----- ---- --- ------- ------ -
在这个例子中,我们将一个包含三个键值对的数组转换为了一个对象。
Object.fromEntries() 方法的深度解析
可迭代对象
Object.fromEntries() 方法接收一个可迭代对象作为参数,这个可迭代对象可以是一个数组,也可以是一个 Map 对象。
如果传入的是一个数组,该数组中的每个元素都必须是一个包含两个元素的子数组,第一个元素表示键,第二个元素表示值。
如果传入的是一个 Map 对象,该 Map 对象中的每个键值对都会被转换成一个对象中的一个键值对。
重复的键
如果传入的数组中有重复的键,那么后面的键值对会覆盖前面的键值对。
-- -------------------- ---- ------- ----- ------- - - -------- ------ ------- ---- -------- ----- -- ----- --- - ---------------------------- ----------------- -- - ----- ----- ---- -- -
键和值的类型
Object.fromEntries() 方法的键和值可以是任意类型,包括对象、函数和 Symbol。
-- -------------------- ---- ------- ----- ------- - - -------- ------ ------- ---- ------------------ -------- ---- ---------- --- -- ----- --- - ---------------------------- ----------------- -- - ----- ----- ---- --- ----------------- ------- --- ---------- -
非法输入
如果传入的参数不是可迭代对象,或者可迭代对象中的元素不是一个包含两个元素的子数组,那么 Object.fromEntries() 方法会抛出一个 TypeError 异常。
Object.fromEntries(); // 抛出 TypeError 异常 Object.fromEntries('hello'); // 抛出 TypeError 异常 Object.fromEntries([[1, 2], [3]]); // 抛出 TypeError 异常 Object.fromEntries([[1, 2], [3, 4, 5]]); // 抛出 TypeError 异常
Object.fromEntries() 方法的指导意义
Object.fromEntries() 方法可以将一个包含键值对的数组转换为一个对象,这个方法可以用于前端开发中,使得我们能够更加方便地处理数据。特别是在处理表单数据时,我们通常会将表单数据转换为一个包含键值对的数组,然后再将这个数组转换为一个对象。
// 将表单数据转换为一个包含键值对的数组 const formData = new FormData(document.querySelector('form')); const entries = Array.from(formData.entries()); // 将数组转换为一个对象 const obj = Object.fromEntries(entries);
Object.fromEntries() 方法还可以用于将一个 Map 对象转换为一个对象。
-- -------------------- ---- ------- ----- --- - --- ----- -------- ------ ------- ---- ---------- ------- --- ----- --- - ------------------------ ----------------- -- - ----- ----- ---- --- ------- ------ -
结论
Object.fromEntries() 方法是 ECMAScript 2018 中的一个新方法,该方法可以将一个包含键值对的数组转换为一个对象。这个方法可以用于前端开发中,使得我们能够更加方便地处理数据。特别是在处理表单数据时,我们通常会将表单数据转换为一个包含键值对的数组,然后再将这个数组转换为一个对象。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/675598a43af3f99efe4fb0a6