Javascript 将输入数组按2个值分组,以便使用amchart创建堆叠条形图
我正在为dataProvider准备数据,使用amchart在JS中创建堆叠柱状图,如下所示,但在标记的列中仅使用2个值(plan和actual),我的服务响应如下所示,我希望对数据进行分组,因此我必须更改输入数组:Javascript 将输入数组按2个值分组,以便使用amchart创建堆叠条形图,javascript,arrays,amcharts,dataprovider,Javascript,Arrays,Amcharts,Dataprovider,我正在为dataProvider准备数据,使用amchart在JS中创建堆叠柱状图,如下所示,但在标记的列中仅使用2个值(plan和actual),我的服务响应如下所示,我希望对数据进行分组,因此我必须更改输入数组: inputArr = [{Value: 10}, {Value: 25}, {Value: 30}, {Value: 37} {Value: 43}]; 由此 newArr = [
inputArr = [{Value: 10},
{Value: 25},
{Value: 30},
{Value: 37}
{Value: 43}];
由此
newArr = [{Value1: 10, Value2: 25},
{Value1: 30, Value2: 37},
{Value1: 43, Value2: 0}];
如果数组中有奇数个元素,则转换时make Value2为0 您可以创建一个函数来进行此转换:
let inputArr=[{Value:10},
{Value:25},
{Value:30},
{Value:37},
{值:43}];
函数对值(ary)
{
让newAry=[];
让obj;
//循环输入的数组和对值
ary.forEach((子对象)=>
{
如果(obj)
{
obj.Value2=子对象值;
新推(obj);
obj=未定义;
}
其他的
{
obj={};
obj.Value1=子对象值;
}
});
//如果最后一个obj没有对,则将值2设置为零
如果(obj)
{
obj.Value2=0;
新推(obj);
}
返回新地址;
}
让outputArr=pairValues(inputArr);
日志(outputArr)代码>