diff --git a/Libraries/Utilities/__tests__/groupByEveryN-test.js b/Libraries/Utilities/__tests__/groupByEveryN-test.js deleted file mode 100644 index d47a372a836..00000000000 --- a/Libraries/Utilities/__tests__/groupByEveryN-test.js +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * @oncall react_native - */ - -'use strict'; - -describe('groupByEveryN', () => { - const groupByEveryN = require('../groupByEveryN'); - - it('should group by with different n', () => { - expect(groupByEveryN([1, 2, 3, 4, 5, 6, 7, 8, 9], 1)).toEqual([ - [1], - [2], - [3], - [4], - [5], - [6], - [7], - [8], - [9], - ]); - expect(groupByEveryN([1, 2, 3, 4, 5, 6, 7, 8, 9], 2)).toEqual([ - [1, 2], - [3, 4], - [5, 6], - [7, 8], - [9, null], - ]); - expect(groupByEveryN([1, 2, 3, 4, 5, 6, 7, 8, 9], 3)).toEqual([ - [1, 2, 3], - [4, 5, 6], - [7, 8, 9], - ]); - expect(groupByEveryN([1, 2, 3, 4, 5, 6, 7, 8, 9], 4)).toEqual([ - [1, 2, 3, 4], - [5, 6, 7, 8], - [9, null, null, null], - ]); - }); - - it('should fill with null', () => { - expect(groupByEveryN([], 4)).toEqual([]); - expect(groupByEveryN([1], 4)).toEqual([[1, null, null, null]]); - expect(groupByEveryN([1, 2], 4)).toEqual([[1, 2, null, null]]); - expect(groupByEveryN([1, 2, 3], 4)).toEqual([[1, 2, 3, null]]); - expect(groupByEveryN([1, 2, 3, 4], 4)).toEqual([[1, 2, 3, 4]]); - }); -}); diff --git a/Libraries/Utilities/groupByEveryN.js b/Libraries/Utilities/groupByEveryN.js deleted file mode 100644 index 0ef4c12d216..00000000000 --- a/Libraries/Utilities/groupByEveryN.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * @flow strict - */ - -/** - * Useful method to split an array into groups of the same number of elements. - * You can use it to generate grids, rows, pages... - * - * If the input length is not a multiple of the count, it'll fill the last - * array with null so you can display a placeholder. - * - * Example: - * groupByEveryN([1, 2, 3, 4, 5], 3) - * => [[1, 2, 3], [4, 5, null]] - * - * groupByEveryN([1, 2, 3], 2).map(elems => { - * return {elems.map(elem => {elem})}; - * }) - */ - -'use strict'; - -function groupByEveryN(array: Array, n: number): Array> { - const result = []; - let temp: Array = []; - - for (let i = 0; i < array.length; ++i) { - if (i > 0 && i % n === 0) { - result.push(temp); - temp = []; - } - temp.push(array[i]); - } - - if (temp.length > 0) { - while (temp.length !== n) { - temp.push(null); - } - result.push(temp); - } - - return result; -} - -module.exports = groupByEveryN;