Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中将数组映射到对象_Javascript_Arrays_Ecmascript 6 - Fatal编程技术网

如何在javascript中将数组映射到对象

如何在javascript中将数组映射到对象,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,如何在JavaScript中将数组映射到对象? 例如,如何映射此 { name: [1,2,3,4,5,6], uv: [300,-145,-100,-8,100,9], pv: [456,230,345,450,312,235] } 进入这个 data = [ {name: '1', uv: 300, pv: 456}, {name: '2', uv: -145, pv: 230}, {name: '3', uv: -100, pv: 345}, {name: '

如何在JavaScript中将数组映射到对象? 例如,如何映射此

{
  name: [1,2,3,4,5,6],
  uv: [300,-145,-100,-8,100,9],
  pv: [456,230,345,450,312,235]
}
进入这个

data = [
  {name: '1', uv: 300, pv: 456},
  {name: '2', uv: -145, pv: 230},
  {name: '3', uv: -100, pv: 345},
  {name: '4', uv: -8, pv: 450},
  {name: '5', uv: 100, pv: 321},
  {name: '6', uv: 9, pv: 235}
]
在JavaScript中,某种程度上如下所示:

var first={
姓名:[1,2,3,4,5,6],
紫外线:[300,-145,-100,-8100,9],
pv:[456230345450312235]
}
var数据=[];
first.name.forEach((项目,i)=>{
数据推送({
姓名:first.name[i],
uv:first.uv[i],
pv:first.pv[i]
})
})
console.log(数据)
您可以使用
array\map

var obj={
姓名:[1,2,3,4,5,6],
紫外线:[300,-145,-100,-8100,9],
pv:[456230345450312235]
};
var result=obj.name.map(函数(v,i){
返回{name:v,uv:obj.uv[i],pv:obj.pv[i]};
});

控制台日志(结果)您可以迭代键,然后迭代属性,并在每个索引处指定所需的值

这可以在不事先知道的情况下处理任意数量的属性

var数据={name:[1,2,3,4,5,6],uv:[300,-145,-100,-8100,9],pv:[456230345450312235],
结果=对象
.钥匙(数据)
.reduce((r,k)=>(数据[k].forEach((v,i)=>(r[i]=r[i].[k]=v,r),[]);
控制台日志(结果)

。作为控制台包装{max height:100%!important;top:0;}
FYI、JSON和JavaScript对象的可能重复是两件不同的事情。这仅在名称、uv和pv的长度相同时才起作用。否则我们将开始定义不清。@TavishAggarwal,是的,但在OP问题中,它们的长度相同,我根据OP的问题编写了这段代码。如果它们的长度不同,我们需要编写另一个代码。是的。真的!但最好给出概括的方法….:-D