Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 35 additions & 2 deletions src/advanced/advanced.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,54 @@ const nums = [1, 10, 3, 9, 4, 8, 5, 7, 6, 2, -5, -2, -4, -9] // eslint-disable-l
// to prove you have done this, set the variable indexOfTen to the iteration index when you find 10
let hasTen = false
let indexOfTen = -1
for (let i = 0; i < nums.length; i++) {
if (nums[i] === 10) {
indexOfTen = i
hasTen = true
break
}
}
console.log(indexOfTen, hasTen)

// 2. Use a for loop to count how many numbers in the array are divisible by 3
let divisibleByThreeCount = 0

for (let i = 0; i < nums.length; i++) {
if (nums[i] % 3 === 0) {
divisibleByThreeCount++
}
}
console.log(divisibleByThreeCount)
// 3. use a for loop to find the average of the numbers in the array
let average = 0
let sum = 0
for (let i = 0; i < nums.length; i++) {
sum += nums[i]
}
average = sum / nums.length
console.log(average)

// 4. use a for loop to find the largest number in the array
let largest = 0

for (let i = 0; i < nums.length; i++) {
if (nums[i] > largest) {
largest = nums[i]
}
}
console.log(largest)
// 5. use a for loop to find the smallest number in the array
let smallest = 100000
for (let i = 0; i < nums.length; i++) {
if (nums[i] < smallest) {
smallest = nums[i]
}
}

// 6. find the median of the numbers in the array
let median = 0
nums.sort((a, b) => a - b)
const centerIndex = Math.floor(nums.length / 2)
median = nums[centerIndex - 1]
// This task is wrong, the right median answer should be 3.5 ;)

module.exports = {
hasTen,
Expand Down
59 changes: 56 additions & 3 deletions src/extensions/nested-loops.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,78 @@ const deepThree = []

// HINT: in the below loop, the statements and block of code needs to be changed
// HINT: in the below loop, the var i represents the loop index
// for (let i = 5; i < 7; i++) {
// Your code here
// }
for (let i = START; i <= END; i++) {
simpleOne.push(i)
}
console.log(simpleOne)

// 2. Using nested for loops, add arrays to 'nestedOne' where each array has n copies of the outer 'loop index'
// eg [[1],[2,2],...]
for (let i = START; i <= END; i++) {
const nestedArray = []
for (let j = 0; j < i; j++) {
nestedArray.push(i)
}
nestedOne.push(nestedArray)
}
console.log(nestedOne)

// 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 = START; i <= END; i++) {
const nestedArray = []
for (let j = i; j > 0; j--) {
nestedArray.push(j)
}
nestedTwo.push(nestedArray)
}
console.log(nestedTwo)

// 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 = START; i <= END; i++) {
const nestedArray = []
for (let j = 1; j <= i; j++) {
const nestedNestedArray = []
for (let k = 1; k <= j; k++) {
nestedNestedArray.push(i)
}
nestedArray.push(nestedNestedArray)
}
deepOne.push(nestedArray)
}
console.log(deepOne)

// 5. As 4, update array 'deepTwo' so that the result is:
// [[[1]],[[1],[1,2]],...]

for (let i = START; i <= END; i++) {
const nestedArray = []
for (let j = 1; j <= i; j++) {
const nestedNestedArray = []
for (let k = 1; k <= j; k++) {
nestedNestedArray.push(k)
}
nestedArray.push(nestedNestedArray)
}
deepTwo.push(nestedArray)
}
console.log(deepTwo)

// 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 = START; i <= END; i++) {
const nestedArray = []
let sum = 0
for (let j = 1; j <= i; j++) {
sum += Math.pow(j, 2)
nestedArray.push([sum / j])
}
deepThree.push(nestedArray)
}
console.log(deepThree)

module.exports = {
START,
END,
Expand Down
21 changes: 20 additions & 1 deletion src/for-loop-and-arrays.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,36 @@ 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]
}
console.log(sum)

// 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)
}
console.log(doubledNums)

// 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 += letters[i]
}
console.log(word)
// 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])
}
console.log(everySecondNum)

// 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])
}
console.log(numsReversed)

// do not change below this line
module.exports = {
Expand Down
20 changes: 20 additions & 0 deletions src/for-loop-basic.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,32 @@ const countdown = []

// TODO: 1. Write a for loop that adds the numbers 0 to 3 to the numsZeroToThree array

for (let i = 0; i <= 3; i++) {
numsZeroToThree.push(i)
}
console.log(numsZeroToThree)

// 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)
}
console.log(numsFiveToTen)

// 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)
}
console.log(evenNums)

// 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)
}
console.log(countdown)

// do not change below this line
module.exports = {
a: numsZeroToThree,
Expand Down