function findAllowedFractions(denominators) {
function uniqueArr (arr, key) {
return arr.filter(
(obj, index) =>
arr.findIndex((item) => item[key] === obj[key]) === index
)
};
return uniqueArr(denominators.map(v => {
const fractions = [[0, 0, 0], [1, 1, 1]];
for (let i = 1; i < v; ++i) {
fractions.push([i, v, i / v]);
}
return fractions;
}).flat().sort((a, b) => a[2] - b[2]), 2);
}