Вы не можете удалить []
, это все, что вы передаете в функцию.
Вы можете создать такую функцию, как
function _delete(obj, prop) {
if (obj[prop] && ! obj[prop].length) delete obj[prop];
}
и позвоните по номеру
_delete(obj, 'a');
Я бы также добавил проверку того, что это свойство и существует ли оно вообще. Поскольку вы, кажется, нацеливаетесь на массив, добавьте проверку, передается ли массив:
function _delete(obj, prop) {
if (Array.isArray(obj[prop]) && ! obj[prop].length) delete obj[prop];
}