actionhero
Version:
The reusable, scalable, and quick node.js API server for stateless and stateful applications
34 lines (31 loc) • 680 B
text/typescript
/**
* Collapses an Object with numerical keys (like `arguments` in a function) to an Array
*/
export function collapseObjectToArray(
obj: Record<string, any>,
): Array<any> | boolean {
try {
const keys = Object.keys(obj);
if (keys.length < 1) {
return false;
}
if (keys[0] !== "0") {
return false;
}
if (keys[keys.length - 1] !== String(keys.length - 1)) {
return false;
}
const arr = [];
for (const i in keys) {
const key = keys[i];
if (String(parseInt(key)) !== key) {
return false;
} else {
arr.push(obj[key]);
}
}
return arr;
} catch (e) {
return false;
}
}