【发布时间】:2018-10-02 22:10:07
【问题描述】:
我正在尝试创建一个像这样的三维数组:
let insPerDay = []
let insDuringThisWeek = [];
let insDuringThisWeek_temp = [[], [], [], [], [], [], []];
for (var i = 0; i < spaceIterationInsWeek.length; i++){
// this loop will repeat a variable amount of times but in this example it repeats twice
for (let k=0; k<weekArray.length; k++) {
// will repeat a variable amount of times but in this example it repeats 7 times
for (let j = 0; j < spaceIterationInsWeek[i].length; j ++) {
// will repeat a variable amount of time (I think in this case it's 167 times, 104 the first loop, 63 the second);
if (spaceIterationInsWeek[i][j] > weekArray[k][0] && spaceIterationInsWeek[i][j] < weekArray[k][1]) {
insDuringThisWeek_temp[k].push(spaceIterationInsWeek[i][j]);
}
}
insDuringThisWeek.push(insDuringThisWeek_temp[k]);
}
console.log(insDuringThisWeek.slice());
insPerDay.push(insDuringThisWeek.slice());
console.log(insPerDay);
// insDuringThisWeek.push(insDuringThisWeek_temp);
}
现在我控制台正在记录这个:
请注意,第一次运行子循环时,insDuringThisWeek.slice() 正在记录 Array(28),但在内部,当我展开视图时,它实际上是 36 而不是 28。我知道这与数组通过引用传递的事实有关,这就是我尝试使用 slice() 来防止这种情况的原因。
最终预期的结果应该是: 1 个父数组,带有 2 个子数组,每个子数组带有 7 个孙子数组。那么那些 7 个孙子数组应该有不同的长度...
类似:
(2) [Array(7), Array(7)]
> 0: (7) [Array(28), Array(12), Array(8), Array(0), Array(0), Array(50), Array(6)]
> 1: (7) [Array(8), Array(11), Array(3), Array(0), Array(0), Array(37), Array(4)]
现在数组加起来是这样的:
(2) [Array(7), Array(14)]
> 0: (7) [Array(36), Array(23), Array(11), Array(0), Array(0), Array(87), Array(10)]
> 1: (14) [Array(36), Array(23), Array(11), Array(0), Array(0), Array(87), Array(10), Array(36), Array(23), Array(11), Array(0), Array(0), Array(87), Array(10)]
有没有办法使用三循环逻辑来实现这一点?
spaceIterationInsWeek的“复制/粘贴”数据:
var spaceIterationInsWeek = [["1538032574112", "1538032574299", "1538032574489", "1538032574707", "1538032574958", "1538032580589", "1538032580744", "1538032583050", "1538035431634", "1538035432105", "1538044237902", "1538044253095", "1538089207793", "1538089207972", "1538089208184", "1538089209765", "1538089209935", "1538089210172", "1538140319898", "1538140320415", "1538393131974", "1538393132133", "1538393132301", "1538393134682", "1538419054736", "1538419056057", "1538419056445", "1538421078992", "1538423320582", "1538423324199", "1538423328179", "1538423331484", "1538423472877", "1538423584874", "1538423586801", "1538423604206", "1538423664249", "1538423668981", "1538423682914", "1538423691802", "1538423866031", "1538423867420", "1538423868327", "1538423875373", "1538424176251", "1538424179511", "1538424231217", "1538424283692", "1538424327861", "1538424327866", "1538424327868", "1538424327871", "1538424327877", "1538424327882", "1538424327884", "1538424327891", "1538424327896", "1538426250753", "1538426251268", "1538426251642", "1538428174561", "1538428174925", "1538428175168", "1538428179449", "1538428179612", "1538428185771", "1538428199625", "1538428204510", "1538428204700", "1538428204883", "1538497882619", "1538498290347", "1538498319612", "1538498370580", "1538498465625", "1538498510231"],["1538033851202", "1538035355166", "1538035355949", "1538035370713", "1538043037913", "1538043065714", "1538043065993", "1538043530533", "1538043531900", "1538043533828", "1538044225832", "1538089267124", "1538089267318", "1538089267543", "1538393117968", "1538393118102", "1538393118254", "1538393119966", "1538393120110", "1538393120362", "1538393120538", "1538393120722", "1538414187921", "1538414188175", "1538414188327", "1538414191291", "1538414191516", "1538424651376", "1538424672070", "1538424672073", "1538424672077", "1538424672080", "1538424673236", "1538424673238", "1538424673241", "1538424673244", "1538424679001", "1538424679010", "1538424679014", "1538424679017", "1538428236679", "1538428236846", "1538428237012", "1538428237172", "1538428237341", "1538428237491", "1538428237649", "1538428237816", "1538428237982", "1538428238159", "1538428238334", "1538498266744", "1538498341583", "1538498481082", "1538498494065"]]
weekArray 的“复制/粘贴”数据:
var weekArray = [[1538002800000, 1538089200000], [1538089200000, 1538175600000],[1538175600000, 1538262000000], [1538262000000, 1538348400000],[1538348400000, 1538434800000],[1538434800000, 1538521200000],[1538521200000, 1538607600000]]
【问题讨论】:
-
我们能否获得一些
spaceIterationInsWeek和weekArray的可复制粘贴样本数据? -
@mpen 我已经把它放在问题中了。
-
那些不是可复制粘贴的。将其粘贴到 Chrome 开发工具/控制台中,您将收到 JS 语法错误。
-
如果需要,您可以使用
JSON.stringify(data)获得不错的输出。我们不需要全部,只需要使用即可。 -
谢谢。现在我只是想了解您要做什么...
weekArray似乎是一组每天的开始/结束对(相隔 24 小时)。然后spaceIterationInsWeek是……什么?你想做什么?查找每天范围内的时间戳?spaceIterationInsWeek中的两个子数组是什么?
标签: javascript arrays for-loop multidimensional-array