使用 ES10 的 Object.fromEntries() 和 map() 方法实现对象的映射和转换

在前端开发中,经常需要对对象进行映射和转换。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


纠错
反馈