Javascript 如何从每个类型的单独数组切换到具有所有值的单个数组?
我必须切换一些数据的格式,因为我正试图为我正在进行的项目切换到不同的API,我真的被难住了 我们以前简化了这种格式的数据:Javascript 如何从每个类型的单独数组切换到具有所有值的单个数组?,javascript,arrays,Javascript,Arrays,我必须切换一些数据的格式,因为我正试图为我正在进行的项目切换到不同的API,我真的被难住了 我们以前简化了这种格式的数据: [ [ // data belonging to 1/1/20 dataset {x: "6:00 AM", y: 1000, sourceData: "1/1/20"}, {x: "6:30 AM", y: 1200, sourceData: "1/1/20"}... ], [ // data belonging to
[
[ // data belonging to 1/1/20 dataset
{x: "6:00 AM", y: 1000, sourceData: "1/1/20"},
{x: "6:30 AM", y: 1200, sourceData: "1/1/20"}...
],
[ // data belonging to 1/2/20 dataset
{x: "6:00 AM", y: 2000, sourceData: "1/2/20"},
{x: "6:30 AM", y: 2400, sourceData: "1/2/20"}...
],
... ... (other potential sets of data)
]
但是,现在我们必须尝试将数据更改为这种格式:
[
{x: "6:00 AM", 1/1/20: 1000, 1/2/20: 2000, blah: "Other data"},
{x: "6:30 AM", 1/1/20: 1200, 1/2/20: 2400, blah: "Other data2"} ...
... // other x values
]
我一直在研究如何以最佳方式遍历第一个数组中的所有数组,并将其转换为一个数组。有没有一种简单的方法可以做到这一点,或者只需要在每个数组和子数组中循环使用相同X的所有值?我对Javascript非常陌生,因此任何建议都将不胜感激!
我试了一下,结果弄得有点乱 我建议首先按时间对数据进行分组,然后删除键以获得预期的输出。我相信映射是使用sourceData值完成的,因此对于每个时间线,它将继续添加您期望的blah键 var arr=[ [//属于1/1/20数据集的数据 { 上午十点六分, y:1000, 资料来源:1/1/20 }, { 上午十时三十分, y:1200, 资料来源:1/1/20 } ], [//属于1/2/20数据集的数据 { 上午十点六分, y:2000, 资料来源:1/2/20 }, { 上午十时三十分, y:2400, 资料来源:1/2/20 } ], ]; var res=arr.reduceini,curr,idx=>{ curr.forEachdata=>{ 如果ini[data.x]{ ini[data.x][data.sourceData]=data.y; }否则{ ini[data.x]={ x:data.x }; ini[data.x][data.sourceData]=data.y; } }; 返回ini; }, []; 预期var=Object.valuesres;
console.logexpected;你期望的数据格式是错误的,为什么你期望重复的密钥?@SunilLama Hi,我不确定你指的是什么不正确-在新格式中唯一需要唯一的是X的值。你能澄清一下吗?你正在切换到什么API?这是他们在文档中描述的预期输入吗?@EmielZuurbier这是用于recharts的-从我所看到的,每个X值都有一个对象,而对应于单独行的Y值实际上只是同一对象上的不同属性。行是基于定义的属性的——在我正在处理的情况下,它将是数据集1/1/20、1/2/20等等。。以前,我们对每行数据都有不同的数组,但restrap要求使用一个具有不同属性的数组来定义行的数据。@CustardBun,对于您的问题,答案是否足够好?