Javascript 将元素从JSON推送到嵌套数组[i][push here]
我有两个文件:index.js和list.json 我想从list.json中获取一个元素,并使用以下结构将其添加到嵌套数组中:[hour][visions per hour] hour指向小时的索引,因此对于ex:hour12实际上是索引12。问题是我一直在控制台中获取未定义的标记。我会把它贴在底部,告诉你我的意思 以下是json文件的摘录,共有28行:Javascript 将元素从JSON推送到嵌套数组[i][push here],javascript,arrays,json,multidimensional-array,Javascript,Arrays,Json,Multidimensional Array,我有两个文件:index.js和list.json 我想从list.json中获取一个元素,并使用以下结构将其添加到嵌套数组中:[hour][visions per hour] hour指向小时的索引,因此对于ex:hour12实际上是索引12。问题是我一直在控制台中获取未定义的标记。我会把它贴在底部,告诉你我的意思 以下是json文件的摘录,共有28行: [ { "time":"01:34:19", "visits": 37 }, { "time":"02:03:21", "visit
[
{ "time":"01:34:19", "visits": 37 },
{ "time":"02:03:21", "visits": 42 },
{ "time":"02:22:35", "visits": 51 },
{ "time":"02:43:54", "visits": 31 },
{ "time":"03:31:43", "visits": 24 },
{ "time":"03:38:01", "visits": 27 },
{ "time":"05:29:57", "visits": 36 },
{ "time":"05:54:08", "visits": 47 },
{ "time":"06:11:17", "visits": 49 },
{ "time":"07:22:03", "visits": 51 },
{ "time":"07:27:09", "visits": 55 },
]
以下是Javascript尝试:
let json = require('./list.json');
let visitsPerHr = [];
visitsPerHr.length = 24;
//I had to do this to avoid a type error in the 2nd loop
for (let x = 0; x < 24; x++) {
visitsPerHr[x] = x;
}
let hour = -1;
let visitCount = -1;
for(let i = 0; i < json.length; i++){
//get hour & parse
hour = json[i].time[0] + json[i].time[1];
hour = parseInt(hour, 10);
//get visits and parse
visitCount = json[i].visits;
visitCount = parseInt(visitCount, 10);
//push to the hour(index) the number of visits, later i need to reorder
//the visits based on highest amount if multiple ones exist within that hour.
visitsPerHr[hour].push = visitCount;
}
一直到23日,有三件事立即引起了我的注意:(1)任何地方都没有JSON.parse();(2) 数组访问和添加
time
值应该做什么?(3) visitspehr[hour].push=visitCount代码>似乎没有意义,是不是应该是visitspehr[hour]=visitCount代码>?你好,多姆森,非常感谢您的及时回复。1:我对JSON/JS不太熟悉,只是尽力了,应该是一行吗?每小时访问多少次?如果您将代码发布在list.json上也会很有帮助,因为模块的导出方式也很重要。。。我正为此苦苦挣扎。我在最初的帖子中更新了上面的json,以反映整个json文件的外观。将访问量添加到每小时总次数中对我来说不是一个选项,请记住,将访问量添加到每小时总次数中不是一个选项,因为我仍然必须按分钟进行细分,正如您看到的,每小时可以有多个访问数(不管它们是否唯一)。我没有添加分钟代码,因为我还没有编写它,但这没关系,因为一旦我了解了如何将元素添加到嵌套数组中,我就应该将这些知识应用到其他方面:)谢谢,Itay,非常感谢:)我感谢你尝试一下。我决定简化我的意图:这就是我要寻找的我有:parentArray和dataArray,我想将每个字母推送到parentArray中的嵌套数组中。在每个数字的末尾,嵌套数组中应有一个字母。parentArray=[1,2,3]dataArray=[a,b,c]for(让i=0,iconst json = require('./list.json');
const visitsPerHour = {0:0,1:0,2:0,3:0,4:0 ... 23:0};
for (let element of json) {
visitsPerHour[(new Date(element.time)).getHours()] += element.visits;
}
const json = require('./list.json');
const visitsPerHour = {0:0,1:0,2:0,3:0,4:0 ... 23:0};
for (let element of json) {
visitsPerHour[(new Date(element.time)).getHours()] += element.visits;
}