Как из объекта удалить все ключи, которые начинаются с гласной буквы

Всем привет, ребята подскажите как удалить из объекта все ключи, которые начинаются с гласной буквы, регистр не имеет значения Пример:

const vowelsObj = {
alarm: 'This is SPARTA!!!',
  chip: 100,
  isValid: false,
  Advice: 'Learn it hard',
  onClick: 'make it great again',
}

removeVowelKeys(vowelsObj);
vowelsObj === {
  chip: 100,
}

Сделал костыль, понимаю что нужно зайти в объект и перебирать каждый ключ, но опять же как сделать так, чтобы он удалял ключ с первой гласной


Ответы (2 шт):

Автор решения: vsemozhebuty

Можно так:

const vowelsObj = {
  alarm: 'This is SPARTA!!!',
  chip: 100,
  isValid: false,
  Advice: 'Learn it hard',
  onClick: 'make it great again',
};

removeVowelKeys(vowelsObj);

console.log(vowelsObj);

function removeVowelKeys(obj) {
  for (const key of Object.keys(obj)) {
    if (/^[aeiou]/i.test(key)) delete obj[key];
  }
}

→ Ссылка
Автор решения: Денис Степанов

const vowelsObj = {
  alarm: 'This is SPARTA!!!',
  chip: 100,
  isValid: false,
  Advice: 'Learn it hard',
  onClick: 'make it great again',
};

function removeVowel(obj) {
  Object.keys(obj)
    .filter(key => "aeiou".includes(key[0].toLowerCase()))
    .forEach(key => delete obj[key]);
}

function removeVowelPure(obj) {
  return Object.keys(obj)
      .filter(key => !"aeiou".includes(key[0].toLowerCase()))
      .reduce((result, key) => Object.assign({[key]: obj[key]}, result), {});
}

const newObject = removeVowelPure(vowelsObj);
console.log("vowelsObj: ", vowelsObj);
console.log("newObject: ", newObject);

removeVowel(vowelsObj);
console.log("vowelsObj: ", vowelsObj);

→ Ссылка