Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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实现Sum函数_Javascript_Sum - Fatal编程技术网

用javascript实现Sum函数

用javascript实现Sum函数,javascript,sum,Javascript,Sum,我试图计算每个月的票数。我拥有的阵列: [['tickets', 'month','year'], [1, "june",2016],[3, "june",2015],[1, "december",2015]] 我想要的结果是: [['year', 'june','december'], [2016,1,0],[2015,3,1]] 但是我不知道如何用javascript来实现它。 有什么帮助吗? 谢谢,一种可能的解决方法: 我将日期分组到一个对象中,创建一个具有条目的月份的唯一数组,然后将

我试图计算每个月的票数。我拥有的阵列:

[['tickets', 'month','year'], [1, "june",2016],[3, "june",2015],[1, "december",2015]]
我想要的结果是:

[['year', 'june','december'], [2016,1,0],[2015,3,1]]
但是我不知道如何用javascript来实现它。 有什么帮助吗?
谢谢,

一种可能的解决方法: 我将日期分组到一个对象中,创建一个具有条目的月份的唯一数组,然后将其处理到所需的数组中

var inArray=[['tickets'、'month'、'year']、[2016年6月1日]、[2015年6月3日]、[2015年12月1日]]
var validMonths={}
功能日期缩减器(acc,curr){
风险年=当前[2]
var月=货币[1]
var num=curr[0]
如果(年==“年”){返回acc}
validMonths[month]=0//生成有效月份的唯一数组
如果(!acc[年度]){
行政协调会[年度]={}
acc[年][月]=数量
}否则{
如果(!acc[年][月]){
acc[年][月]=数量
}否则{
会计科目[年][月]+=num
}
}
返回acc
}
var obj=inArray.reduce(dateReducer,{})
//这可能很好,取决于您的需要
validMonths=Object.keys(validMonths)
var outArray=[“年”].concat(有效月数)
对于(obj中的var年){
if(对象为自有财产(年)){
变量子数组=[年]
有效月份forEach(v=>{
子阵列推送(obj[年][v]| | 0)
})
outArray.push(子阵列)
}
}

console.log(outArray)
一种可能的方法: 我将日期分组到一个对象中,创建一个具有条目的月份的唯一数组,然后将其处理到所需的数组中

var inArray=[['tickets'、'month'、'year']、[2016年6月1日]、[2015年6月3日]、[2015年12月1日]]
var validMonths={}
功能日期缩减器(acc,curr){
风险年=当前[2]
var月=货币[1]
var num=curr[0]
如果(年==“年”){返回acc}
validMonths[month]=0//生成有效月份的唯一数组
如果(!acc[年度]){
行政协调会[年度]={}
acc[年][月]=数量
}否则{
如果(!acc[年][月]){
acc[年][月]=数量
}否则{
会计科目[年][月]+=num
}
}
返回acc
}
var obj=inArray.reduce(dateReducer,{})
//这可能很好,取决于您的需要
validMonths=Object.keys(validMonths)
var outArray=[“年”].concat(有效月数)
对于(obj中的var年){
if(对象为自有财产(年)){
变量子数组=[年]
有效月份forEach(v=>{
子阵列推送(obj[年][v]| | 0)
})
outArray.push(子阵列)
}
}

log(outArray)
您可以使用动态方法对任意月份计数,并使用哈希表作为年份的参考

var数据=[['tickets',month',year'],[1,“june”,2016],[3,“june”,2015],[1,“december”,2015],
列=['年'、'六月'、'十二月'],
temp=数据片(1).reduce(函数(结果,项){
结果[项目[2]]=结果[项目[2]]| |{};
结果[项目[2]][项目[1]]=项目[0];
返回结果;
}, {}),
result=Object.keys(temp).sort(函数(a,b){return b-a;}).map(函数(year){
返回columns.map(函数(月,i){
返回i?温度[年][月]| 0:+年;
});
});
结果:取消移位(列);
控制台日志(结果)

.as console wrapper{max height:100%!important;top:0;}
您可以使用动态方法对任意月份计数,并使用哈希表作为年份的引用

var数据=[['tickets',month',year'],[1,“june”,2016],[3,“june”,2015],[1,“december”,2015],
列=['年'、'六月'、'十二月'],
temp=数据片(1).reduce(函数(结果,项){
结果[项目[2]]=结果[项目[2]]| |{};
结果[项目[2]][项目[1]]=项目[0];
返回结果;
}, {}),
result=Object.keys(temp).sort(函数(a,b){return b-a;}).map(函数(year){
返回columns.map(函数(月,i){
返回i?温度[年][月]| 0:+年;
});
});
结果:取消移位(列);
控制台日志(结果)

.as console wrapper{max height:100%!important;top:0;}
您实际上可以在这里(和)使用ES6功能

其想法是从原始数据源创建一个包含年/月/总票证的对象,然后您可以使用该对象将数据映射到所需的结构中,如下所示:

var数据=[['tickets',month',year'],[1,“june”,2016],[3,“june”,2015],[1,“december”,2015];
函数mapTicketData(数据){
var dataMap=data.slice(1).reduce(函数(结果、当前、索引){
var[票据,月,年]=当前;
if(results.months.indexOf(month)=-1){
结果.月.推(月);
}
如果(结果.年份.索引of(年份)=-1){
结果.年.推(年);
}
如果(!结果[年度]){
结果[年]={};
}
如果(!结果[年][月]){
结果[年][月]=0;
}
结果[年][月]+=门票;
返回结果;
},{月:[],年:[]});
返回[['year',…dataMap.months],…dataMap.years.map(函数(年)){
return[year].concat(dataMap.months.map)函数(month){
返回数据映射[年][月]| | 0;
}));
})
];
}

console.log(mapTicketData(数据))实际上,您可以在这里(和)使用ES6功能

其想法是从原始数据源创建一个包含年/月/总票证的对象,然后您可以使用该对象将数据映射到所需的结构中,如下所示:

var数据=[['tickets',month',year'],[1,“june”,2016],[3,“june”,2015],[1,“december”,2015];
函数mapTicketData(数据){
var dataMap=data.slice(1).reduce(函数(结果、当前、索引){
var[票据,月,年]=当前;
if(results.months.indexOf(month)=-1){
结果.月.推(月);
}
如果(结果.年份.索引of(年份)=-1){
结果.年.推(年);
}
如果(!结果[年度]){
结果[年]={};
}
我