我需要删除所有键,这些键从对象的元音开始,但是我不知道该怎么做。到目前为止,这就是我所拥有的。在此示例中,仅应保留“ chip”键,而所有其他键均应删除。你们能帮我吗?
'use strict'
function removeVowelKeys(object) {
for (let key in object) {
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 object.key
}
}
}
console.log(removeVowelKeys({
alarm: 'This is SPARTA!!!',
chip: 100,
isValid: false,
Advice: 'Learn it hard',
onClick: 'make it great again',
}));
您需要从函数中返回对象,但也不应在对其进行循环时从对象中删除键。
这样的事情会做到这一点:
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;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句