Javascript 匹配两个数组数据并得到其总和!(算法…?)
我想匹配时间和日期 结果应该是每个日期的时间总和。。。 例如…06/27-应该是30和90的和…依此类推。 我该怎么做Javascript 匹配两个数组数据并得到其总和!(算法…?),javascript,arrays,Javascript,Arrays,我想匹配时间和日期 结果应该是每个日期的时间总和。。。 例如…06/27-应该是30和90的和…依此类推。 我该怎么做 var array_date=["2017/06/27","2017/06/26","2017/06/27","2017/06/26","2017/06/28"] var array_time=["30","50","90","120","20"] var obj = array_date; for (var i = 0 in obj) { console.log("r
var array_date=["2017/06/27","2017/06/26","2017/06/27","2017/06/26","2017/06/28"]
var array_time=["30","50","90","120","20"]
var obj = array_date;
for (var i = 0 in obj) {
console.log("rr:"+obj[i]);
}
//To filter date I used below method...anyway.
var cleanArray = displayed_date.filter((value,index,self)=>{ return (self.indexOf(value) === index )});
首先,由于您正在进行加法,因此最好将字符串转换为数字:
array_time = array_time.map(t=> +t);
接下来,按日期对时间进行分组和求和:
let data = array_date.reduce((acc, d, i)=> {
if(acc.hasOwnProperty(d)) acc[d] += array_time[i];
else acc[d] = array_time[i];
return acc;
}, {});
您可以这样做:
<script>
array_date=["2017/06/27","2017/06/26","2017/06/27","2017/06/26","2017/06/28"];
array_time=["30","50","90","120","20"];
var oData = [];
for(var i = 0; i < array_date.length; i++ ){
if(Object.keys(oData).length > 0){
var icount = 0;
for(var x = 0; x < Object.keys(oData).length; x++){
if(oData[x]['date'] == array_date[i]){
oData[x]['sum'] = parseInt(oData[x]['sum']) + parseInt(array_time[i]);
icount++;
}
}
if(icount == 0){
var oCreate = {"date":array_date[i], "sum":parseInt(array_time[i])}
oData.push(oCreate);
}
}else{
var oCreate = {"date":array_date[i], "sum":parseInt(array_time[i])}
oData.push(oCreate);
}
}
console.log(JSON.stringify(oData)); //oData is the final variable answer here.
</script>
数组_日期=[“2017/06/27”、“2017/06/26”、“2017/06/27”、“2017/06/26”、“2017/06/28”];
数组_时间=[“30”、“50”、“90”、“120”、“20”];
var oData=[];
对于(变量i=0;i0){
var-icount=0;
for(var x=0;x
希望这会有帮助