前端开发的某些场景(比如用echarts开发某些可视化图表)经常需要将【多属性对象,如“{a:1,b:2}”】与【单属性对象的数组,如“[{a:1},{b:2}]”】做相互转换,以下是不通过循环,简洁实现这种转换的方法:
1.【多属性对象“{a:1, b:2}”】转换成【单属性对象的数组“[{a:1}, {b:2}]”】:
//{a: 1, b: 2} 转换为 [{a: 1}, {b: 2}] let objObject = {a: 1, b: 2}; Object.keys(objObject).map( function(x){ return {[x]: objObject[x]}; } //(注意:在这里不能使用箭头表达式) )
结果:
2.【单属性对象的数组“[{a:1}, {b:2}]”】转换成【多属性对象“{a:1, b:2}”】:
//[{a: 1}, {b: 2}] 转换为 {a: 1, b: 2} let arrObject = [{a: 1}, {b: 2}]; Object.assign({}, ...arrObject)
结果: