1.1 Range (no step)
function range (start, end) {
let rangeArray = [];
for(var i = start; i <= end; i++) {
rangeArray.push(i);
}
return rangeArray;
}
range(1, 6);
(6) [1, 2, 3, 4, 5, 6]
1.2 Range (with step)
function range (start, end, step) {
let rangeArray = [];
if (step === undefined) {
for(var i = start; i <= end; i++) {
rangeArray.push(i);
}
}else if (step < 0) {
for(var i = start; i <= end; i-=step) {
rangeArray.push(i);
}
}else {
for(var i = start; i <= end; i+= step) {
rangeArray.push(i);
}
}
return rangeArray;
}
//range(1, 10, 2);
[1, 3, 5, 7, 9]
//range(1, 10, );
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
//range(5, 2, -1);
[ ] // negative step value not returning the desired array, any ideas?
1.3 Sum of Array
function sum(input) {
var total = 0;
for(var i=0;i<input.length;i++) {
total += Number(input[i]);
}
return total;
}
sum(rangeArray);
//returns 21
sum([1, 2, 3, 4, 5, 6]);
//returns 21
2.1 reverseArray
function reverseArray (arr) {
let reversedArray = [];
for (var i = 0; i <= arr.length; i++) {
reversedArray.unshift(arr[i]);
}
return reversedArray;
}
reversedArray ([1, 2, 3, 4]);
(5) [undefined, 4, 3, 2, 1] //Why is undefined included, any ideas?
2.2 reverseArrayInPlace
function reverseInPlace (arr) {
let leftIndex = 0;
let rightIndex = arr.length - 1;
while (leftIndex < rightIndex) {
let temp = arr[leftIndex];
arr[leftIndex] = arr[rightIndex];
arr[rightIndex] = temp;
leftIndex++;
rightIndex--;
}
return arr;
}
reverseInPlace ([1, 2, 3, 4, 5, 6, 7, 8]);
(8) [8, 7, 6, 5, 4, 3, 2, 1]
-
I know the reverse in place is clunky and there are math.floor and other solutions, but I was trying for a solution that made more sense to me.
-
Feedback on my reverse array (undefined included in array) and my range with negative step (returning empty array) is welcomed.