Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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 - Fatal编程技术网

Javascript 如何从每个类型的单独数组切换到具有所有值的单个数组?

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

我必须切换一些数据的格式,因为我正试图为我正在进行的项目切换到不同的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 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,对于您的问题,答案是否足够好?