А что вы хотите куда спредить и деструктурировать?
const [...{name:name}] = data;
Здесь вы пытаетесь создать массив с именем переменной... тут нет имени переменной для массива,
Но если вы дернете без спреда,
const [{name: name}] = data;
то вам вернется значение поля name из первого элемента массива и запишется в переменную name, даже не объект, т.к. в данном случае([{name: name}]) происходит операция присваивания переменной 'name' значением поля 'name' из массива объектов, что на выходе даст строку с первым значением этого поля.
Вам нужен новый массив с ключами и значениями из другого массива, так? Это делается так -
const data=[
{id:1, name:"ganna",age:15},
{id:2, name:"anna",age:16},
{id:3, name:"petro",age:54}
];
const arr = Object.values(data).map(item => [{ name: item.name }]); // Массив массивов с объектами
const arr2 = Object.keys(data).map(() => []); // Массив пустых массивов, чтоб можно было пушнуть элементы в
// массив. Еще можно так Array.from(data).fill([]);
Object.values(data).map((item, index) => arr2[index].push({ name: item.name }));
console.log(arr);
//=> [
// [{name: 'ganna'}],
// [{name: 'anna'}],
// [{name: 'petro'}]
//. ]
console.log(arr2);
//=> [
// {name: 'ganna'},
// {name: 'anna'},
// {name: 'petro'}
//. ]