在前端开发中,经常需要对对象进行映射和转换。ES10 引入了 Object.fromEntries() 和 map() 方法,可以简化这个过程,并提高代码的可读性和可维护性。
Object.fromEntries() 方法
Object.fromEntries() 方法可以将一个由键值对数组转换成一个对象。它接收一个数组作为参数,数组的每个元素都是一个键值对数组,第一个元素是键,第二个元素是值。
const arr = [['a', 1], ['b', 2], ['c', 3]]; const obj = Object.fromEntries(arr); console.log(obj); // {a: 1, b: 2, c: 3}
这个方法可以用于将一个 Map 对象转换成一个普通对象。
const map = new Map([['a', 1], ['b', 2], ['c', 3]]); const obj = Object.fromEntries(map); console.log(obj); // {a: 1, b: 2, c: 3}
map() 方法
map() 方法是数组的一个高阶函数,它可以对数组中的每个元素进行处理,并返回一个新的数组。它接收一个函数作为参数,这个函数接收当前元素、当前索引和整个数组作为参数,返回一个新的元素。
const arr = [1, 2, 3]; const newArr = arr.map((item) => item * 2); console.log(newArr); // [2, 4, 6]
这个方法可以用于将一个对象数组转换成一个普通对象。
const arr = [{ key: 'a', value: 1 }, { key: 'b', value: 2 }, { key: 'c', value: 3 }]; const obj = Object.fromEntries(arr.map(({ key, value }) => [key, value])); console.log(obj); // {a: 1, b: 2, c: 3}
对象的映射和转换
使用 Object.fromEntries() 和 map() 方法,可以轻松实现对象的映射和转换。例如,我们有一个数组,每个元素都是一个对象,包含了一个 key 和一个 value,我们想要将它们转换成一个普通对象,其中 key 是对象的 key,value 是对象的 value。
const arr = [{ key: 'a', value: 1 }, { key: 'b', value: 2 }, { key: 'c', value: 3 }]; const obj = Object.fromEntries(arr.map(({ key, value }) => [key, value])); console.log(obj); // {a: 1, b: 2, c: 3}
我们也可以将一个普通对象转换成一个数组,每个元素都是一个对象,包含了一个 key 和一个 value,其中 key 是对象的 key,value 是对象的 value。
const obj = { a: 1, b: 2, c: 3 }; const arr = Object.entries(obj).map(([key, value]) => ({ key, value })); console.log(arr); // [{key: 'a', value: 1}, {key: 'b', value: 2}, {key: 'c', value: 3}]
总结
使用 ES10 的 Object.fromEntries() 和 map() 方法,可以简化对象的映射和转换,提高代码的可读性和可维护性。在实际开发中,我们可以根据具体的需求,灵活运用这两个方法,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658957cdeb4cecbf2dea0150