使用以下代碼,我想將一個陣列推入陣列中,weeks如果i是該陣列<=中每個元素的值。
const weeks = [];
const daysInWeek = [];
numberOfDays = 35;
for (let i = 1; i <= numberOfDays; i ) {
if (i % 7 === 0){
weeks.push(i)
}
// output [7, 14, 21, 28, 35]
for (logic here...) {
daysInWeek.push([?])
}
}
我想daysInWeek看起來像這樣:
[[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15,......], ...]
這是我第一次使用嵌套回圈,我無法真正理解這個想法,因此我不確定如何使用第二個回圈。
任何幫助將不勝感激。
uj5u.com熱心網友回復:
if (i % 7 === 0){在陳述句內創建一個新陣列。該陣列將每周創建一次,并將保留您的日子。
6現在通過從 的當前值中減去來開始第二個回圈i。i將始終是 7 的倍數。因此,減去 6,您將得到該周的第一天。將該結果存盤在j.
然后對于回圈的評估部分,檢查是否j等于或低于i,我們永遠不想高于當前一周的最后一天。還要檢查是否j等于或低于numberOfDays。您不想添加比您指定的天數更多的天數。
將每一天添加到 days 陣列。然后在回圈之后將天陣列添加到daysInWeek. 現在你得到了這個嵌套的陣列結構。
const weeks = [];
const daysInWeek = [];
numberOfDays = 35;
for (let i = 1; i <= numberOfDays; i ) {
if (i % 7 === 0){
weeks.push(i)
const days = [];
for (let j = i - 6; j <= i && j <= numberOfDays; j ) {
days.push(j);
}
daysInWeek.push(days);
}
}
console.log(daysInWeek);
uj5u.com熱心網友回復:
你的回圈是錯誤的。請也試試這個。
在一個回圈中,我們可以創建所有陣列并將它們像這樣添加在一起。
const weeks = [];
const daysInWeek = [];
numberOfDays = 35;
for (let i = 1; i <= numberOfDays; i ) {
const weekid = parseInt(((i-1)/7)); // used i-1 because in the loop i started as 1. if we use i/7 we loose a day record from the first week. Test it.
if(!weeks.includes(weekid) ){
weeks.push(weekid);
}
let tempArray = [];
if(daysInWeek[weekid] === undefined){
daysInWeek[weekid] = [];
}
daysInWeek[weekid].push(i);
}
console.log(daysInWeek);
uj5u.com熱心網友回復:
Math.floor((i - 1) / 7) 給你桌子的鑰匙來推動你的日子
<script type="text/javascript">
const weeks = [];
const daysInWeek = [[]];
numberOfDays = 35;
for (let i = 1; i <= numberOfDays; i ) {
if (i % 7 === 0){
weeks.push(i)
daysInWeek.push([])
}
daysInWeek[Math.floor((i - 1) / 7)].push(i)
}
console.log(daysInWeek);
</script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/491714.html
標籤:javascript 数组 循环 for循环 嵌套循环
