Javascript 使用其他数组中的值转换所有数组键
我有许多数组,是从csv文件生成的。在所有数组中,第一个数组对象是csv标题。见下例: 总之,第一个数组的值(即key=0和value=“report\u date”)应该替换所有后续数组的所有键 除了第一个数组之外,所有数组都要进行这样的转换Javascript 使用其他数组中的值转换所有数组键,javascript,arrays,Javascript,Arrays,我有许多数组,是从csv文件生成的。在所有数组中,第一个数组对象是csv标题。见下例: 总之,第一个数组的值(即key=0和value=“report\u date”)应该替换所有后续数组的所有键 除了第一个数组之外,所有数组都要进行这样的转换 Array[7] "report_date": "2014-01-07" "description": "Cupidatat reprehenderit anim non irure aliqua irure veniam sint veniam ve
Array[7]
"report_date": "2014-01-07"
"description": "Cupidatat reprehenderit anim non irure aliqua irure veniam sint veniam velit aute elit."
"email": "helene.pennington@techtrix.biz"
"company": "Techtrix"
"status": "false"
"name/last": "Pennington"
"name/first": "Helene"
这应该可以做到:
var数据=[['id','name','value'],[0',foo',true],[2',bar',false],[3',baz',null],[4',foobar',未定义]];
var keys=data.shift();//获取包含键的第一行
var result=data.map(函数(行){
var current={};//创建新元素
对于(变量i=0;i 控制台日志(结果)代码>您可以将结果映射到一个对象,并删除第一个项目(其中只有键/键)
var数组=[[“报告日期”、“说明”、“电子邮件”、“公司”、“状态”、“姓名/姓氏”、“姓名/姓氏”]、[“2014-01-07”、“动物保护协会”和“圣维尼亚姆维尼亚姆维利特奥特精英”等。pennington@techtrix.biz“,“Techtrix”,“false”,“Pennington”,“Helene”],
result=array.map(函数(a,u,aa){
var对象={};
aa[0]。forEach(函数(键,i){
对象[键]=a[i];
});
返回对象;
}).切片(1);
控制台日志(结果)代码>
.as控制台包装{max height:100%!important;top:0;}
解决问题的另一种方法如下:
var数据=[[“项目0”、“项目1”、“项目2”],
[“val_00”、“val_01”、“val_02”],
[“val_10”、“val_11”、“val_12”],
[“val_20”、“val_21”、“val_22”],
newData=data.slice(1)
.map(vs=>vs.reduce((p,c,i)=>i-1?对象.assign(p,{[data[0][i]]]:c})
:Object.assign({},{[data[0][i-1]]:p[data[0][i]]:c});
console.log(newData)如果源数组被修改,代码>并不真正关心。工作谢谢