Javascript 如何将三维数组分为三个部分进行循环?
我正在尝试创建一个三维数组,如下所示:Javascript 如何将三维数组分为三个部分进行循环?,javascript,arrays,for-loop,multidimensional-array,Javascript,Arrays,For Loop,Multidimensional Array,我正在尝试创建一个三维数组,如下所示: let insPerDay = [] let insDuringThisWeek = []; let insDuringThisWeek_temp = [[], [], [], [], [], [], []]; for (var i = 0; i < spaceIterationInsWeek.length; i++){ // this loop will r
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);
}
(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)]
现在阵列的总和如下所示:
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);
}
(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)]
有没有一种方法可以使用三环路逻辑来实现这一点
SpaceIterationSweek的“复制/可复制”数据
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]]
只需在最后清除阵列:
let insPerDay = []
let insDuringThisWeek = [];
let insDuringThisWeek_temp = [[], [], [], [], [], [], []]; // clean array
for (var i = 0; i < spaceIterationInsWeek.length; i++){
// will repeat the number of depts (i =2)
for (let k=0; k<weekArray.length; k++) {
// will repeat 7 times (j =7)
for (let j = 0; j < spaceIterationInsWeek[i].length; j ++) {
// will repeat the number of ins
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].slice());
console.log(insDuringThisWeek);
}
insPerDay.push(insDuringThisWeek);
//HERE
insDuringThisWeek = [];
insDuringThisWeek_temp = [[], [], [], [], [], [], []];
console.log(insPerDay);
}
let insPerDay=[]
让我们在本周内加入=[];
让我们在本周内输入温度=[]、[]、[]、[]、[]、[]、[]、[]、[]、[];//清洁阵列
for(var i=0;i
只需在末尾清除阵列:
let insPerDay = []
let insDuringThisWeek = [];
let insDuringThisWeek_temp = [[], [], [], [], [], [], []]; // clean array
for (var i = 0; i < spaceIterationInsWeek.length; i++){
// will repeat the number of depts (i =2)
for (let k=0; k<weekArray.length; k++) {
// will repeat 7 times (j =7)
for (let j = 0; j < spaceIterationInsWeek[i].length; j ++) {
// will repeat the number of ins
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].slice());
console.log(insDuringThisWeek);
}
insPerDay.push(insDuringThisWeek);
//HERE
insDuringThisWeek = [];
insDuringThisWeek_temp = [[], [], [], [], [], [], []];
console.log(insPerDay);
}
let insPerDay=[]
让我们在本周内加入=[];
让我们在本周内输入温度=[]、[]、[]、[]、[]、[]、[]、[]、[]、[];//清洁阵列
for(var i=0;i
这里是另一种方法。。。。。。可能是也可能不是您想要的确切输出
var spaceiterationsweek=[
["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"]
]
var weekArray=[
[1538002800000, 1538089200000],
[1538089200000, 1538175600000],
[1538175600000, 1538262000000],
[1538262000000, 1538348400000],
[1538348400000, 1538434800000],
[1538434800000, 1538521200000],
[1538521200000, 1538607600000]
]
var out=spaceiterationsweek.map(space=>{
设grouped=Array.from({
长度:weekArray.length
}).map(=>[]);//为每个星期对创建一个空数组
space.forEach(ts=>{
让idx=weekArray.findIndex(([start,end])=>ts>=start&&ts=0){
分组[idx]。推送(ts);//使用周对的索引将其分组
}否则{
错误(`Timestamp${ts}未在任何星期数组`)中找到//如果未找到时间范围,则错误!
}
})
分组返回;
})
console.log(out);
这里有另一种方法……可能是也可能不是您想要的确切输出
var spaceiterationsweek=[
["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", "1538419056