рони, нет, ему надо это):
function fixArraysRecursive(value) {
if(
// проверяем что объект
typeof value === 'object'
// проверяем что простой объект, а не какой-нить Date
&& Object.prototype.toString.call(value) === '[object Object]'
){
// получаем ключи объекта
const keys = Object.keys(value);
// проверяем что есть ключ 0
const isArray = 0 in value
// если да - что все ключи числа
&& keys.every(key => key === parseInt(key, 10).toString())
// если да - что нет пропусков
&& keys
.map(Number)
.sort((a, b) => a - b)
.every((key, index) => key === index);
const target = isArray ? Array(keys.length) : {...value};
keys.forEach((key, i) => target[key] = fixArraysRecursive(value[key]));
return target;
}
return value;
}