Skip to content

Instantly share code, notes, and snippets.

@clayton-perszyk
Created August 3, 2015 23:49
Show Gist options
  • Select an option

  • Save clayton-perszyk/dec731722463ee129c98 to your computer and use it in GitHub Desktop.

Select an option

Save clayton-perszyk/dec731722463ee129c98 to your computer and use it in GitHub Desktop.
// PUT YOUR CODE HERE!!!
var _ = {
average: function(array) {
if (!Array.isArray(array)){ return "can only find average of numbers." }
var length = array.length;
var sum = 0;
for (var i = 0; i < length; i += 1) {
sum += array[i];
}
return sum / length;
},
contains: function(array, number) {
var length = array.length;
for (var i = 0; i < length; i += 1) {
if (array[i] === number) {
return true
}
}
return false;
},
first: function(array) {
return array[0];
},
last: function(array) {
return array[array.length - 1]
},
max: function(array) {
var length = array.length;
var maximum = 0;
for (var i = 0; i < length; i += 1) {
if (array[i] > maximum) {
maximum = array[i];
}
}
return maximum;
},
min: function(array) {
var length = array.length;
var min;
for (var i = 0; i < length; i += 1) {
if (min === undefined || array[i] < min) {
min = array[i]
}
}
return min;
},
shuffle: function(array) {
var newArr = [];
var index = array.length;
var tempVar;
var randomIndex;
for (var i = length; i > 0; i -= 1) {
randomIndex = Math.floor(Math.random() * (i + 1));
tempVar = array[randomIndex];
array[randomIndex] = array[i];
array[i] = tempVar;
}
return array;
},
sample: function(array, elements) {
var randomElements = [];
var random;
var indexToRemove;
if (!elements) { return array[Math.floor(Math.random() * (length - 1))] }
for (var i = 1; i <= elements; i += 1) {
random = Math.floor(Math.random() * (array.length - 1));
randomElements.push(array[random]) ;
indexToRemove = array.indexOf(array[random]);
array.splice(indexToRemove, 1);
}
return randomElements;
},
difference: function(array1, array2) {
var diffArray = [];
for (var i = 0; i < array2.length; i += 1) {
for (var j = 0; j < array1.length; j += 1) {
if (!(array1[j] === array2[i]) && diffArray.indexOf(array1[i]) === -1) {
diffArray.push(array1[i]);
}
}
}
return diffArray;
},
indexOf: function(array, value) {
for (var i = 0; i < array.length; i += 1) {
if (array[i] === value) {
return i;
}
}
return -1;
},
pluck: function(array, propName) {
var propValues = [];
for (var i = 0; i < array.length; i += 1) {
propValues.push(array[i][propName]);
}
return propValues;
},
each: function(array, action) {
for (var i = 0; i < array.length; i += 1) {
action(array[i]);
}
},
compact: function(array) {
var compacted = [];
for (var i = 0; i < array.length; i += 1) {
if (array[i] !== undefined) {
compacted.push(array[i]);
}
}
return compacted;
},
map: function(array, action) {
var mapped = [];
for (var i = 0; i < array.length; i += 1) {
mapped.push(action(array[i]));
}
return mapped;
},
filter: function(array, action) {
var passedArray = [];
for (var i = 0; i < array.length; i += 1) {
if (action(array[i])) {
passedArray.push(array[i]);
}
}
return passedArray;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment