Array Manipulation
by verashn
JavaScript
var ArrayOperator = (function() {
var reverse = function (arr) {
var result = [];
for (var i = arr.length - 1; i >= 0; i--) {
result.push(arr[i]);
}
return result;
};
var reverseInPlace = function (arr) {
var len = arr.length;
for (var i = 0; i < len/2; i++) {
var swapIndex = len-i-1,
first = arr[i],
last = arr[swapIndex];
arr[i] = last;
arr[swapIndex] = first;
}
return arr;
}
var shiftOne = function (arr) {
var firstEl = arr[0],
result = arr.slice(1, arr.length);
result.push(firstEl);
return result;
};
var findPairs = function (arr, sum) {
var result = [];
// include duplicates: use arr.length as max value for i
for (var i = 0; i < Math.ceil(arr.length/2); i++) {
for (var j = 0; j < arr.length; j++) {
// don't reuse the same index
if (j != i) {
if (arr[i] + arr[j] === sum) {
result.push(arr[i] + "," + arr[j]);
}
}
}
}
return result;
};
var removeDupes = function (arr) {
var result = [];
for (var i = 0; i < arr.length; i++) {
// if value not already found in array
if (result.indexOf(arr[i]) === -1) {
// add unique value
result.push(arr[i]);
}
}
return result;
};
return {
reverse: reverse,
reverseInPlace: reverseInPlace,
shiftOne: shiftOne,
findPairs: findPairs,
removeDupes: removeDupes
};
}());
console.log(ArrayOperator.reverse([1,2,3,4,5,6,7]));
console.log(ArrayOperator.reverseInPlace([1,2,3,4,5,6,7]));
console.log(ArrayOperator.shiftOne([1,2,3,4,5,6,7]));
console.log(ArrayOperator.findPairs([1,2,3,4,5,6,7], 9));
console.log(ArrayOperator.removeDupes([1,2,2,3,3,3,4,5,6,7,6,5,4,3]));