From 636017ca51dad05339cde3b5c66cbe1d71957f7e Mon Sep 17 00:00:00 2001 From: SczSca <90069772+SczSca@users.noreply.github.com> Date: Thu, 20 Oct 2022 06:38:56 -0500 Subject: [PATCH] algorithm: reverse (#1197) --- Data-Structures/Array/Reverse.js | 17 +++++++++++++++++ Data-Structures/Array/test/Reverse.test.js | 13 +++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 Data-Structures/Array/Reverse.js create mode 100644 Data-Structures/Array/test/Reverse.test.js diff --git a/Data-Structures/Array/Reverse.js b/Data-Structures/Array/Reverse.js new file mode 100644 index 000000000..79a789c01 --- /dev/null +++ b/Data-Structures/Array/Reverse.js @@ -0,0 +1,17 @@ +/** https://www.geeksforgeeks.org/write-a-program-to-Reverse-an-array-or-string/ + * This function will accept an array and + * Reverse its elements and returns the inverted array + * @param {Array} arr array with elements of any data type + * @returns {Array} array with inverted elements + */ + +const Reverse = (arr) => { + // limit specifies the amount of Reverse actions + for (let i = 0, j = arr.length - 1; i < arr.length / 2; i++, j--) { + const temp = arr[i] + arr[i] = arr[j] + arr[j] = temp + } + return arr +} +export { Reverse } diff --git a/Data-Structures/Array/test/Reverse.test.js b/Data-Structures/Array/test/Reverse.test.js new file mode 100644 index 000000000..bf137fe65 --- /dev/null +++ b/Data-Structures/Array/test/Reverse.test.js @@ -0,0 +1,13 @@ +import { Reverse } from '../Reverse.js' +import each from 'jest-each' + +describe('reverse elements in an array', () => { + each` + array | expected + ${[]} | ${[]} + ${[1]} | ${[1]} + ${[1, 2, 3, 4]} | ${[4, 3, 2, 1]} + `.test('returns $expected when given $array', ({ array, expected }) => { + expect(Reverse(array)).toEqual(expected) + }) +})