在JavaScript中将二维表格数据项转换为对象数组

在JavaScript中将二维表格数据项转换为对象数组,javascript,arrays,object,Javascript,Arrays,Object,我有一个JS数组: var arr = [["Ashley","2017-01-10",80], ["Ashley","2017-02-10",75], ["Ashley","2017-03-10",85], ["Clara","2017-01-10",90], ["Clara","2017-02-10",82]]; 并希望使用嵌套对象创建一个新数组。其思想是在新对象中包含名称、句号和分数。应该是这样的: var newArr = [{"

我有一个JS数组:

var arr = [["Ashley","2017-01-10",80],
       ["Ashley","2017-02-10",75],
       ["Ashley","2017-03-10",85],
       ["Clara","2017-01-10",90],
       ["Clara","2017-02-10",82]];
并希望使用嵌套对象创建一个新数组。其思想是在新对象中包含名称、句号和分数。应该是这样的:

var newArr = [{"name":"Ashley", "2017-01-10":80, "2017-02-10":75, "2017-03-10":85},
              {"name":"Clara", "2017-01-10":90, "2017-02-10":82}];
您可以使用并使用普通JS对象作为映射,在遍历
数组时,通过关联的人名临时存储对象:

var数组=[
[“阿什利”,“2017-01-10”,80],
[“阿什利”,“2017-02-10”,第75页],
[“阿什利”,“2017-03-10”,85],
[“克拉拉”,“2017-01-10”,90],
[“克拉拉”,“2017-02-10”,82]
]
var结果=[]
array.reduce(函数(map,e){
map[e[0]]| | result.push(map[e[0]]={name:e[0]})
地图[e[0]][e[1]]=e[2]
返回图
}, {})
console.log(结果)

。作为控制台包装{min height:100%;}
您可以使用哈希表作为名称,并用它收集其他数据

var数组=[[“阿什利”,“2017-01-10”,80],“阿什利”,“2017-02-10”,75],“阿什利”,“2017-03-10”,85],“克拉拉”,“2017-01-10”,90],“克拉拉”,“2017-02-10”,82],
分组=数组.reduce(函数(散列){
返回函数(r,a){
如果(!散列[a[0]]){
散列[a[0]]={name:a[0]};
r、 推送(散列[a[0]]);
}
散列[a[0]][a[1]]=a[2];
返回r;
};
}(Object.create(null)),[]);
控制台日志(分组)
。作为控制台包装{最大高度:100%!重要;顶部:0;}