diff --git a/src/extensions/nested-loops.js b/src/extensions/nested-loops.js index 1d0044b..19cba26 100644 --- a/src/extensions/nested-loops.js +++ b/src/extensions/nested-loops.js @@ -16,21 +16,87 @@ const deepThree = [] // for (let i = 5; i < 7; i++) { // Your code here // } +for(let i = 1; i <= 10; i++){ + simpleOne.push(i) +} // 2. Using nested for loops, add arrays to 'nestedOne' where each array has n copies of the outer 'loop index' -// eg [[1],[2,2],...] +// eg [[1],[2,2],...]' +for(let i = 1; i <= 10; i++){ + let lst = [] + for(let j = 0; j < i; j++){ + lst.push(i) + } + nestedOne.push(lst) +} + // 3. As 2, but each array should contain the values from the outer 'loop index' to 1 inclusive. Update array 'nestedTwo' // eg [[1],[2,1],...] +for(let i = 1; i <= 10; i++){ + let lst = [] + for(let j = i; j > 0; j--){ + lst.push(j) + } + nestedTwo.push(lst) +} + + // 4. As 2, but each array should contain arrays from 1 to the outer 'loop index' with the value of the outer 'loop index'. Update array 'deepOne' // eg [[[1]],[[2],[2,2]],...] +for (let i = 1; i <= 10; i++) { + const outerArray = []; + + for (let j = 1; j <= i; j++) { + const innerArray = Array(j).fill(i); + outerArray.push(innerArray); + } + + deepOne.push(outerArray); +} + // 5. As 4, update array 'deepTwo' so that the result is: // [[[1]],[[1],[1,2]],...] +for (let i = 1; i <= 10; i++) { + const outerArray = []; + + for (let j = 1; j <= i; j++) { + const innerArray = []; + + for (let k = 1; k <= j; k++) { + innerArray.push(k); + } + + outerArray.push(innerArray); + } + + deepTwo.push(outerArray); +} + // 6. As 5, update the array 'deepThree', but the result should be the average of the sum of the squares of the numbers in each array // [[1],[[1],[2.5]],...] +for (let i = 1; i <= 10; i++) { + const outerArray = []; + + for (let j = 1; j <= i; j++) { + const numbers = []; + + for (let k = 1; k <= j; k++) { + numbers.push(k); + } + + const sumOfSquares = numbers.reduce((sum, num) => sum + (num * num), 0); + + const average = sumOfSquares / numbers.length; + + outerArray.push([average]); + } + + deepThree.push(outerArray); +} module.exports = { START, diff --git a/src/for-loop-and-arrays.js b/src/for-loop-and-arrays.js index 6635155..fa7f5a8 100644 --- a/src/for-loop-and-arrays.js +++ b/src/for-loop-and-arrays.js @@ -6,17 +6,34 @@ let word = '' // eslint-disable-line prefer-const // TODO: Add code below this line to make the tests pass // 1. Use a for loop to set the sum variable to the sum of all the values in nums +for (let i = 0; i < nums.length; i++) { + sum += nums[i] +} // 2. Use a for loop to populate doubledNums with every value from nums array doubled (i.e [2, 6, 24, etc...]) const doubledNums = [] +for (let i = 0; i < nums.length; i++) { + doubledNums.push(nums[i] * 2) +} // 3. Use a for loop to set word variable equal to all the letters in the letters array combined as a single string +for (let i = 0; i < letters.length; i++){ + word = word.concat(letters[i]) +} + // 4. Use a for loop to populate everySecondNum with every second number from the nums array const everySecondNum = [] +for (let i = 1; i < nums.length; i += 2){ + everySecondNum.push(nums[i]) +} // 5. Use a for loop to populate numsReversed with the numbers from nums in reverse order const numsReversed = [] +for(let i = nums.length- 1; i >= 0; i--){ + numsReversed.push(nums[i]) +} + // do not change below this line module.exports = { diff --git a/src/for-loop-basic.js b/src/for-loop-basic.js index dc3775a..78e500d 100644 --- a/src/for-loop-basic.js +++ b/src/for-loop-basic.js @@ -4,12 +4,27 @@ const evenNums = [] const countdown = [] // TODO: 1. Write a for loop that adds the numbers 0 to 3 to the numsZeroToThree array +for (let index = 0; index <= 3; index++) { + numsZeroToThree.push(index) + +} // TODO: 2. Write a for loop that adds the numbers 5 to 10 to the numsFiveToTen array +for(let i = 5; i <= 10; i++){ + numsFiveToTen.push(i) +} + // TODO: 3. Write a for loop that adds all the even numbers between 0 and 6 (0, 2, 4, 6) to evenNums +for(let i = 0; i <= 6; i += 2){ + evenNums.push(i) +} // TODO: 4. Write a for loop that adds the numbers 3 to 0 (in that order) to the countdown array +for(let i = 3; i >= 0; i--){ + countdown.push(i) +} + // do not change below this line module.exports = {