//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']