Свойство data
в Shape
не является массивом JS и весьма ограничено.
Согласно документации :
Обратите внимание, чтообъекты не могут быть индивидуально добавлены или удалены из списка после создания;чтобы изменить содержимое списка, его необходимо переназначить в новый список.
Итак, вам нужно создать новый список без элемента, который вы хотите удалить:
function removeFromShapeAt(index) {
var d = []
for (var i = 0; i !== shape.data.length; ++i) {
if (i !== index) {
d.push(shape.data[i])
}
}
shape.data = d
}