diff --git a/snippets/allEqual.md b/snippets/allEqual.md new file mode 100644 index 000000000..8bc9ccc0d --- /dev/null +++ b/snippets/allEqual.md @@ -0,0 +1,14 @@ +### allEqual + +Check if all elements are equal + +Use `Array.every()` to check if all the elements of the array are the same as the first one. + +```js +const allEqual = arr => arr.every(val => val === arr[0]); +``` + +```js +allEqual([1, 2, 3, 4, 5, 6]); // false +allEqual([1, 1, 1, 1]); // true +``` diff --git a/test/allEqual/allEqual.js b/test/allEqual/allEqual.js new file mode 100644 index 000000000..79f392d3b --- /dev/null +++ b/test/allEqual/allEqual.js @@ -0,0 +1,2 @@ +const allEqual = arr => arr.every(val => val === arr[0]); +module.exports = allEqual; diff --git a/test/allEqual/allEqual.test.js b/test/allEqual/allEqual.test.js new file mode 100644 index 000000000..832bd1fc3 --- /dev/null +++ b/test/allEqual/allEqual.test.js @@ -0,0 +1,38 @@ +const expect = require('expect'); +const allEqual = require('./allEqual.js'); + +test('allEqual is a Function', () => { + expect(allEqual).toBeInstanceOf(Function); +}); + +test('Truthy numbers', () => { + expect(allEqual([4, 4, 4])).toBeTruthy(); +}); + +test('Falsy numbers', () => { + expect(allEqual([4, 3.999, 4])).toBeFalsy(); +}); + +test('Truthy strings', () => { + expect(allEqual(['lorem', 'lorem', 'lorem'])).toBeTruthy(); +}); + +test('Falsy numbers', () => { + expect(allEqual(['lorem', 'ipsum', 'dolore'])).toBeFalsy(); +}); + +test('Truthy trues', () => { + expect(allEqual([true, true, true])).toBeTruthy(); +}); + +test('Truthy falses', () => { + expect(allEqual([false, false, false])).toBeTruthy(); +}); + +test('Falsy trues', () => { + expect(allEqual([true, true, false])).toBeFalsy(); +}); + +test('Falsy falses', () => { + expect(allEqual([false, false, true])).toBeFalsy(); +}); \ No newline at end of file