在前端开发中,我们经常需要对数组进行操作,其中包括遍历、过滤、映射等等。ES9 新增的 Object.entries() 和 Object.fromEntries() 就为我们的数组操作提供了更为便捷的方式。
Object.entries()
Object.entries() 方法返回一个数组,该数组包含了给定对象自身可枚举属性的键值对数组。这个方法可以将一个对象转化为一个键值对数组,我们可以利用这个数组快速的遍历对象。
const obj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(obj); console.log(entries); // Output: [['a', 1], ['b', 2], ['c', 3]]
可以看到,Object.entries() 将对象转化为了一个数组,其中每个元素都是一个包含两个元素的数组,第一个元素是键名,第二个元素是键值。这样,我们就可以利用数组的遍历方法对对象进行便捷的遍历操作。
for (const [key, value] of Object.entries(obj)) { console.log(`${key}: ${value}`); } // Output: // a: 1 // b: 2 // c: 3
Object.fromEntries()
Object.fromEntries() 方法是 Object.entries() 方法的逆过程,可以将一个键值对数组转化为一个对象。这个方法可以用于将一个数组转化为一个对象,我们可以快速的创建一个对象,或者将一个数组转化为一个与原数组方式相同但内容不同的数组。
const entries = [['a', 1], ['b', 2], ['c', 3]]; const obj = Object.fromEntries(entries); console.log(obj); // Output: { a: 1, b: 2, c: 3 }
可以看到,Object.fromEntries() 方法将一个键值对数组转化成了一个对象。这样,我们可以利用数组的方法预处理数据后再将其转换为对象,方便我们进行后续操作。
这里有一个利用 Object.fromEntries() 方法将一个对象按照键值排序的例子:
const obj = { c: 3, a: 1, b: 2 }; const sortedObj = Object.fromEntries(Object.entries(obj).sort((a, b) => a[0] > b[0] ? 1 : -1)); console.log(sortedObj); // Output: { a: 1, b: 2, c: 3 }
可以看到,我们首先使用 Object.entries() 将对象转化成了一个键值对数组,然后按照键名进行排序,最后使用 Object.fromEntries() 将排序后的数组转化为对象。这样我们就可以快速地将一个对象按照键名排序,便于后续的操作。
总结
通过 Object.entries() 和 Object.fromEntries(),我们可以更为方便地处理数组和对象。这两个方法可以快速的将一个对象转化为一个键值对数组、将一个键值对数组转化为一个对象,进而便于我们进行操作。
我们可以利用 Object.entries() 快速地遍历对象,或者将一个对象排序,而利用 Object.fromEntries() 可以快速地创建一个对象或者转化一个数组。这些都可以为我们的开发带来更为便捷的方式,提升我们的开发效率。
祝愿诸位在开发过程中能够灵活运用这两个方法,提升自己的编程能力。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65b8b9e4add4f0e0ff14e412