在 ECMAScript 2019 中,新增了 Object.fromEntries() 方法。这个方法可以将一个包含键值对数组的对象转换成一个对象。如下所示:
const entries = [['a', 1], ['b', 2], ['c', 3]]; const obj = Object.fromEntries(entries); console.log(obj); // 输出:{a: 1, b: 2, c: 3}
上面的代码中,我们先定义了一个包含三个键值对的数组 entries
。然后我们调用 Object.fromEntries()
方法将这个数组转换成对象 obj
。
对象常用加强实践
从 Map 转换成对象
在实践中,经常需要将 Map 对象转换成一个普通的对象。使用 Object.fromEntries()
方法就可以很方便地实现:
const map = new Map([['a', 1], ['b', 2], ['c', 3]]); const obj = Object.fromEntries(map); console.log(obj); // 输出:{ a: 1, b: 2, c: 3 }
对象的反转
在实践中,有时候需要将一个对象的键值对反转。使用 Object.entries()
方法获取到一个对象的键值对数组,然后再使用 Object.fromEntries()
方法将其反转:
const obj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(obj).map(([key, value]) => [value, key]); const inverted = Object.fromEntries(entries); console.log(inverted); // 输出:{ 1: 'a', 2: 'b', 3: 'c' }
只保留特定的键
在实践中,有时候我们需要从一个对象中只保留部分键。使用 Object.fromEntries()
方法可以很方便地实现:
const obj = { a: 1, b: 2, c: 3 }; const keepKeys = ['a', 'c']; const entries = Object.entries(obj).filter(([key, value]) => keepKeys.includes(key)); const newObj = Object.fromEntries(entries); console.log(newObj); // 输出:{ a: 1, c: 3 }
学习意义
在实践中,我们经常需要将不同的数据结构转换成对象,或者对一个对象进行特定的操作。使用 Object.fromEntries()
方法可以很方便地实现这些操作,从而加强了代码的可读性和易用性。
总结
在 ECMAScript 2019 中,新增了 Object.fromEntries()
方法。这个方法可以很方便地将一个包含键值对数组的对象转换成一个对象。使用 Object.fromEntries()
方法,可以方便地将 Map 对象转换成普通对象、对对象进行反转、只保留特定的键等。这个方法为我们的实践带来了很大的方便,也加强了代码的可读性和易用性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64b3945748841e9894fdba28