Как из объекта удалить все ключи, которые начинаются с гласной буквы
Всем привет, ребята подскажите как удалить из объекта все ключи, которые начинаются с гласной буквы, регистр не имеет значения Пример:
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);