// Ожидаемый результат будет {user: [{residences: [{pincode: 678987}]}]} *
Ваш результат не выглядит правильным ...
Я думаю, вы хотели разобрать строку: "user-0-residences-0-pincode-678987"
Вы можете сделать это:
var string = "user-0-residences-0-pincode-678987";
var arr = string.split("-");
var result = {};
for (var i = 0; i < arr.length; i+=2) {
result[arr[i]] = arr[i + 1];
}
console.log(result);