在前端开发中,我们经常需要将一个对象转换为数组,以便于进行一些数据处理和操作。在 ECMAScript 2021 中,新增了一种方便快捷的方法来实现这个目的。
Object.entries() 方法
ECMAScript 2021 中新增了 Object.entries() 方法,它可以将一个对象转换为一个由 [key, value] 对组成的数组。这个方法返回的数组中,每个元素都是一个二元数组,第一个元素是对象的属性名称,第二个元素是对应属性的值。
以下是 Object.entries() 方法的语法:
Object.entries(obj)
其中,obj 是要转换的对象。
下面是一个示例代码:
const obj = {name: '张三', age: 18, gender: '男'}; const arr = Object.entries(obj); console.log(arr);
输出结果为:
[ ['name', '张三'], ['age', 18], ['gender', '男'] ]
可以看到,Object.entries() 方法将一个对象转换为了一个由 [key, value] 对组成的数组。
Array.from() 方法
除了使用 Object.entries() 方法之外,我们也可以使用 Array.from() 方法将一个对象转换为数组。这个方法可以接受一个类似数组的对象或可迭代的对象,并返回一个新的数组。
以下是 Array.from() 方法的语法:
Array.from(obj[, mapFn[, thisArg]])
其中,obj 是要转换为数组的对象;mapFn 是一个可选参数,用于对每个元素进行处理;thisArg 是可选参数,用于指定 mapFn 函数中的 this 值。
下面是一个示例代码:
const obj = {name: '张三', age: 18, gender: '男'}; const arr = Array.from(obj, ([key, value]) => `${key}: ${value}`); console.log(arr);
输出结果为:
['name: 张三', 'age: 18', 'gender: 男']
可以看到,Array.from() 方法将一个对象转换为了一个字符串数组,每个元素都是一个由属性名和属性值组成的字符串。
总结
在 ECMAScript 2021 中,我们可以使用 Object.entries() 方法或 Array.from() 方法将一个对象转换为数组。这两种方法都非常方便快捷,可以大大简化我们的开发工作。
需要注意的是,不同的方法可能会返回不同的数组格式,需要根据实际需求进行选择和使用。同时,我们也可以根据具体的业务需求,使用自定义的方法来实现对象到数组的转换。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6603e285d10417a2220610d4