Chapter 4 - Exercises

Exercise 1 my solution:

var numberArray = []


function range(start,end){

  for(; start <= end; start++){
    numberArray.push(parseInt(start))
  }
  return numberArray
}

function sum(array){
  var total = 0
  for(let i = 0; i < array.length; i++){
    total += array[i]
  }
  return total
}

alert(sum(range(1,10)))

Exercise 2 my solution:

var fruits = ['banana', 'apple', 'raspberry', 'mango', 'blueberry', 'blackberry', 'strawberry']




function reverseArray1(array){
  newArray = []
  for(let i = array.length - 1; i >=0; i--){
    newArray.push(array[i])
  }
    return newArray;
}

console.log(reverseArray1(fruits))
1 Like

Sum of a Range

  <script>
      var rangeList = [];
      function range(start,end,step) {
        if(start<end){
        for(var x=start; x <= end; x=x+step) {
          rangeList.push(x);
        };
        return rangeList;
      }else{
        for(var x=start; x >= end; x=x+step) {
          rangeList.push(x);
        };
        return rangeList;
      }
      }
    console.log(range(1,10,2));

    var sum = rangeList.reduce(function(a,b) {
      return a + b;
    }, 0);

    console.log(sum);


    </script>```
1 Like

Reverse an Array


      function reverseArray(orgArray){
        var newArray = [];
        var length = orgArray.length //cannot put i<=orgArray.length inside for() because
        for(var i=0; i<length; i++) { //its value changes as function progresses
        var x = orgArray.pop();
        newArray.push(x);
      }
      console.log(newArray);
    };
    reverseArray([1,2,3,4,5,6,7,8,9,10]);

    </script>
type or paste code here
1 Like
//1a. Array range function

function range(a,b){
  let array = [];
    for (a; a<=b; a++){
       array.push(a);
    }; 
    console.log(array);      
};

range(1,10);
//→ 10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


//1b. Array sum function

function arraySum(arr){
  var total = 0,
      len = arr.length;

  for (var i = 0; i < len; i++){
    total += arr[i];
  }

  return total;
};

console.log(arraySum([2,3,4,5]);
//→14


//1c. Array range function with step

function rangeArray(start, end, step){
  let array = [];
    if (((end-start)/step) > 0) {
      for (let i = start; Math.abs(i) <= Math.abs(end); i+= step) array.push(i);
      } else {
        return array;
      }
  return array;
}

console.log(rangeArray(1, 21, 3));
//→ (7) [1, 4, 7, 10, 13, 16, 19]
console.log(rangeArray(5,-34,-4));
//→ (10) [5, 1, -3, -7, -11, -15, -19, -23, -27, -31]
console.log(rangeArray(5,34,-4));
//→[]


//1d. Array range function with step, slightly different to above 

function range(a, b, c = a < b ? 1: -1) {
  var array = [a];
    if (c!=0) while (((b-a)/c) > 0 && Math.abs(a+c) <= Math.abs(b)) {
       a += c;  
        array.push(a); 
  }  
  if (array.length > 1) return array;
}

range(2,-11);
//→(19) [2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11]
range(2,16,2.5);
//→(6) [2, 4.5, 7, 9.5, 12, 14.5]
range(2,31,-5);
//→undefined
range(2,17,0);
//→undefined



//2a. Invert an array 

function invertArray(array) {
    let array2 = [...array];
    var arrayInverted = [];         
        for (var i = 0; i < array.length; i++){
            let old = array2.pop();
            arrayInverted[i] = old;        
        }
        return arrayInverted;
}

var motors = ['Audi', 'VW', 'Lexus', 'Skoda', 'Tesla'];

console.log(invertArray(motors));
//→ (5)['Tesla', 'Skoda', 'Lexus', 'VW', 'Audi']


//2b. Invert and modify an array  

function invertModifyArray(array) {            
        for (var i = 0; i < array.length - 1; i++){
            let old = array.pop();
            array.splice(i, 0, old);        
        }
        return array;
}

var motors = ['Tesla', 'Skoda', 'Lexus', 'VW', 'Audi']; 

console.log(invertModifyArray(motors));
//→ (5)['Audi', 'VW', 'Lexus', 'Skoda', 'Tesla']

1 Like