Untitled
unknown
typescript
2 years ago
807 B
14
Indexable
function printIdByIndex(strings: string[], index: number) {
const indexes = new Array(strings.length).fill(0);
const combinations = strings.reduce((acc, string) => acc * string.length, 1);
if (index > combinations) {
return;
}
let hasPreviousLeft = false;
for (let i = strings.length - 1; i >= 0; i--) {
if (index <= strings[i].length) {
indexes[i] = hasPreviousLeft ? index : index - 1;
break;
}
let left = index % strings[i].length;
let position =
left === 0 ? strings[i].length - 1 : hasPreviousLeft ? left : left - 1;
indexes[i] = position;
index = (index - left) / strings[i].length;
hasPreviousLeft = left !== 0;
}
// print id
console.log(
indexes.map((position, index) => strings[index].charAt(position)).join('')
);
}Editor is loading...