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

Javascript:每天除以对象日期值

Javascript:每天除以对象日期值,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,大家好, 我有一个目标: {"2017-07-09 00:00:00":4,"2017-07-09 09:00:00":1,"2017-07-09 10:00:00":4,"2017-07-09 11:00:00":3,"2017-07-09 12:00:00":16,"2017-07-09 13:00:00":4,"2017-07-09 14:00:00":6,"2017-07-09 15:00:00":5,"2017-07-09 16:00:00":7,"2017-07-09 17:00:0

大家好,
我有一个目标:

{"2017-07-09 00:00:00":4,"2017-07-09 09:00:00":1,"2017-07-09 10:00:00":4,"2017-07-09 11:00:00":3,"2017-07-09 12:00:00":16,"2017-07-09 13:00:00":4,"2017-07-09 14:00:00":6,"2017-07-09 15:00:00":5,"2017-07-09 16:00:00":7,"2017-07-09 17:00:00":21,"2017-07-09 18:00:00":25,"2017-07-09 19:00:00":1,"2017-07-10 09:00:00":11,"2017-07-10 10:00:00":4,"2017-07-10 11:00:00":21,"2017-07-10 12:00:00":22,"2017-07-10 13:00:00":23,"2017-07-10 14:00:00":42,"2017-07-10 15:00:00":14,"2017-07-10 16:00:00":36,"2017-07-10 17:00:00":21,"2017-07-10 18:00:00":5,"2017-07-11 09:00:00":16,"2017-07-11 10:00:00":7,"2017-07-11 11:00:00":26,"2017-07-11 12:00:00":34,"2017-07-11 13:00:00":39,"2017-07-11 14:00:00":39,"2017-07-11 15:00:00":30,"2017-07-11 16:00:00":33,"2017-07-11 17:00:00":22,"2017-07-11 18:00:00":1}

我试着每天把它分开,得到如下结果:
首先为24小时内的一天创建一个数组:


然后计算上面的对象中有多少天,得到每个小时的值,并返回如下内容。在对象中,我有3天,因此我需要为每一天返回3个数组:


对于不在对象数据中的每个小时,返回0;对于存在的每个小时,返回对象上的指定值。 例如,在对象上,时间从
“2017-07-09 00:00:00”:4开始,其值为4,并且在该值与
“2017-07-09 09:00:00”之间的每小时为1
返回0。


感谢您的帮助。非常感谢您抽出时间

首先,您必须循环到
对象
的每个键中

在众多解决方案之后,一种方法是将密钥转换为
Date
对象,并在
for
循环中比较
对象的小时数

并通过将日期obj重新转换为obj属性来检索正确的数据

编辑

使用
Object.keys
findIndex

我可能误解了你的要求,但你有一个很好的例子 关于如何做;-)

解决方案示例

var数据={“2017-07-09 00:00:00”:4,“2017-07-09 09 09:00:00”:1,“2017-07-09 10:00:00”:4,“2017-07-09 11:00:00”:3,“2017-07-09 12:00:00”:16,“2017-07-09 13:00:00”:4,“2017-07-09 14:00:00”:6,“2017-07-09 15:00:00”:5,“2017-07-07-09 16:00:00”:7,“2017-07-07-09 17:00:00:00:00”:21,“2017-07-07-07-07-09 14:00:00:00:00”,2017-07-07-09:00,"2017-07-10 10:00:00":4,"2017-07-10 11:00:00":21,"2017-07-10 12:00:00":22,"2017-07-10 13:00:00":23,"2017-07-10 14:00:00":42,"2017-07-10 15:00:00":14,"2017-07-10 16:00:00":36,"2017-07-10 17:00:00":21,"2017-07-10 18:00:00":5,"2017-07-11 09:00:00":16,"2017-07-11 10:00:00":7,"2017-07-11 11:00:00":26,"2017-07-11 12:00:00":34,"2017-07-11 13:00:00":39,"2017-07-11 14:00:00":39,"2017-07-11 15:00:00":30,"2017-07-11 16:00:00":33,"2017-07-11 17:00:00":22,"2017-07-11 18:00:00":1}
var dataKeys=Object.keys(数据);
var dataKeysParsed=dataKeys.map(函数(d){
返回新日期(d);
});
var-res=[];
对于(变量i=0;i-1?数据[dataKeys[id]]:0);
}

console.log(res);
非常感谢您的时间。如何像我在问题上所展示的那样以单独的数组返回每天?将数据对象格式化为一个天数数组并调整我的解决方案;-)
数据[{day1},{day2},…]
=>每天循环并应用我的方法。我不知道如何做到这一点。不幸的是,在互联网上也找不到一些东西:(
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]
[4,0,0,0,0,0,0,0,0,1,10,3,16,...],
[0,0,0,0,0,0,0,0,0,11,4,21,22,23,42,...]
[0,0,0,0,0,0,0,0,0,16,7,26,34,39,39,30,..]