UNPKG

mathsteps-experimental-fork

Version:

Step by step math solutions. Experimental Fork

44 lines (42 loc) 1.3 kB
function generateCombinations(arr) { const combinations = []; for (let i = 0; i < arr.length - 1; i++) { for (let j = i + 1; j < arr.length; j++) { const pair = [arr[i], arr[j]]; const remaining = arr.filter((_, index) => index !== i && index !== j); combinations.push([...pair, ...remaining]); } } return combinations; } function filterUniqueValues(arr, isEqual = (a, b) => a === b) { const uniqueArray = []; const seen = /* @__PURE__ */ new Map(); for (let i = 0; i < arr.length; i++) { const current = arr[i]; let isUnique = true; for (const key of seen.keys()) { if (isEqual(current, key)) { isUnique = false; break; } } if (isUnique) { uniqueArray.push(current); seen.set(current, true); } } return uniqueArray; } const areArraysEqualUnordered = (array1, array2, { isEqualFn = (a, b) => a === b, sortFn = (arr) => arr.sort(), copyFn = (arr) => [...arr] } = {}) => { if (array1.length !== array2.length) return false; const sortedArray1 = sortFn(copyFn(array1)); const sortedArray2 = sortFn(copyFn(array2)); return sortedArray1.every((item, index) => isEqualFn(item, sortedArray2[index])); }; export { areArraysEqualUnordered, filterUniqueValues, generateCombinations };