метод сращивания всегда возвращает массив, а не объект. Таким образом, в вашем коде 5-й элемент является массивом, поэтому он дает неопределенное значение. Просто замените эту строку, она будет работать нормально
students.push(...students.splice(students.length/2,1));
чтобы узнать о Маре ... (оператор покоя) нажмите здесь
let students=[
{"name":"a","uid":"001"},
{"name":"b","uid":"002"},
{"name":"c","uid":"003"},
{"name":"d","uid":"004"},
{"name":"e","uid":"005"},
];
students.push(...students.splice(students.length/2,1));
console.log(students.length);
for(let s of students){
console.log(s.name+':'+s.uid+',');
}