2 回答

TA貢獻1862條經(jīng)驗 獲得超7個贊
您需要從函數(shù)返回對象,但也不應該在循環(huán)對象時從對象中刪除鍵。
像這樣的事情會做到這一點:
const removeVowelKeys = (obj) =>
Object.fromEntries(
Object.entries(obj).filter(
([k]) => !["a", "e", "i", "o", "u"].includes(k.toLowerCase()[0])
)
);
console.log(removeVowelKeys({
alarm: 'This is SPARTA!!!',
chip: 100,
isValid: false,
Advice: 'Learn it hard',
onClick: 'make it great again',
}));
我還修復了您的原始方法以在迭代對象之前復制對象,并使用[square bracket]符號來正確使用您的鍵:
function removeVowelKeys(obj) {
for (let key in { ...obj }) {
if (
key[0] === "a" ||
key[0] === "A" ||
key[0] === "u" ||
key[0] === "U" ||
key[0] === "i" ||
key[0] === "I" ||
key[0] === "o" ||
key[0] === "O" ||
key[0] === "e" ||
key[0] === "E" ||
key[0] === "y" ||
key[0] === "Y"
) {
delete obj[key];
}
}
return obj;
}

TA貢獻1820條經(jīng)驗 獲得超10個贊
我是這樣做的。確保您實際上從函數(shù)中返回了一些內(nèi)容...另請注意,y 在技術上不是元音。
function removeVowelKeys(obj) {
let output = {};
for (let key in obj) {
if (!(['a', 'e', 'i', 'o', 'u'].includes(key[0].toLowerCase()))) output[key] = obj[key];
}
return output;
}
添加回答
舉報