//Chapter 4 - Exercise 1
// // Write a function that takes two arguments, start and end, and returns an array containing all the numbers from start up to (and including) end
function listArray (startingNumber, endNumber) {
let finalArray = [startingNumber]
for(let i = 1; i <= (endNumber - startingNumber); i++) {
finalArray.push(startingNumber + i)
}
console.log(finalArray)
}
listArray (1, 10)
// // Write a function that takes an array of numbers and returns the sum of these numbers
function sumArray (startingNumber, endNumber) {
let finalArray = [startingNumber]
let totalArray = startingNumber
for(let i = 1; i <= (endNumber - startingNumber); i++) {
finalArray.push(startingNumber + i)
totalArray += finalArray[i]
}
console.log(totalArray)
}
sumArray (1, 10)
// // Bonus - Step function
function stepArray (startingNumber, endNumber, increment) {
let finalArray = [startingNumber]
if(increment < 0) {
for(let i = increment; i >= (endNumber - startingNumber); i += increment) {
finalArray.push(startingNumber + i)
}
console.log(finalArray)
}
if(increment >= 0) {
for(let i = increment; i <= (endNumber - startingNumber); i += increment) {
finalArray.push(startingNumber + i)
}
console.log(finalArray)
}
}
stepArray (5, 2, -1)
// write two functions, reverseArray and reverseArrayInPlace
// #1 reverseArray, takes an array as argument and produces a new array that has the same elements in the inverse order.
function reverseArray (array) {
let newArray = []
for(let i = 1; i <= array.length; i++) {
newArray.push(array[array.length - i])
}
console.log(newArray)
}
let array1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
reverseArray(array1)
// #2 reverseArrayInPlace, does what the reverse method does: it modifies the array given as argument by reversing its elements
function reverseArrayInPlace(array) {
for (let i = 0; i < Math.floor(array.length / 2); i++) {
let old = array[i];
array[i] = array[array.length - 1 - i];
array[array.length - 1 - i] = old;
}
console.log(array);
}
let array1 = [1, 2, 3, 4]
reverseArrayInPlace (array1)