@mxmitch/lotide
Version:
A mini clone of the [Lodash](https://lodash.com) library.
53 lines (47 loc) • 1.43 kB
JavaScript
const takeUntil = function(array, callback) {
const results = [];
for (let item of array) {
if (callback(item) === false) {
results.push(item);
} else if (callback(item) === true)
return results;
}
return results;
};
//Testing takeUntil function
const data1 = [1, 2, 5, 7, 2, -1, 2, 4, 5];
const results1 = takeUntil(data1, x => x < 0);
console.log(results1);
console.log('---');
const data2 = ["I've", "been", "to", "Hollywood", ",", "I've", "been", "to", "Redwood"];
const results2 = takeUntil(data2, x => x === ',');
console.log(results2);
//Function to test if arrays are equal
const eqArrays = function(array1, array2) {
if (array1.length !== array2.length) {
return false;
} else {
for (let i = 0; i < array1.length; i++) {
if (typeof array1[i] !== typeof array2[i]) {
return false;
}
}
for (let i = 0; i < array1.length; i++) {
if (array1[i] !== array2[i]) {
return false;
}
}
return true;
}
};
//Function to assert if arrays are equal
const assertArraysEqual = function(actual, expected) {
if (eqArrays(actual, expected)) {
console.log(`✅✅✅ Assertion Passed: ${actual} === ${expected}`);
} else {
console.log(`🛑🛑🛑 Assertion Failed: ${actual} !== ${expected}`);
}
};
// TEST CODE
assertArraysEqual(results1, [1, 2, 5, 7, 2]);
assertArraysEqual(results2, ['I\'ve', 'been', 'to', 'Hollywood']);