Umsetzung der removeProperty Funktion, die ein Objekt und eine Eigenschaft name im javascript
Umsetzung der removeProperty Funktion, die nimmt ein Objekt und der name einer Eigenschaft und macht Folgendes:
Wenn das Objekt obj hat die Eigenschaft prop, entfernt es die Eigenschaft des Objekts.
Wenn die Eigenschaft wurde entfernt, gibt es true zurück; andernfalls gibt Sie false zurück.
Was ist falsch an diesem code?
function removeProperty(obj,prop) {
if(obj.hasOwnProperty('prop'))
{
console.log(obj);
delete obj.prop;
return true;
}
else
{
return false;
}
}
var obj= {
name:"John"
};
removeProperty({obj,'name'});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den erwarteten code wäre :
Erklärung:
Der hasOwnProperty () - Methode gibt einen booleschen Wert zurück, der angibt, ob das Objekt die angegebene Eigenschaft als eigene (nicht angeborene) Eigenschaft.Also, um zu überprüfen, eigene und geerbte Eigenschaften als auch in.
Klammer-notation, die bessere option als obj.prop.
Da Square bracket notation erlaubt die Verwendung von Zeichen, die nicht verwendet werden können, mit dot-notation(wie z.B. zahlen) und es auch erlaubt die Auswahl von Eigenschaften mit Hilfe von Variablen.
Im aktuellen Szenario-bracket-notation verwendet werden soll.
Hier ist der vollständige code, die hilfreich sein könnten. Es gibt viele Möglichkeiten, es zu tun.
Den Fehler in deinem code ist durch das argument, dass Sie bestanden haben, um die
removeProperty
Funktion. Es erwartet zwei Argumente, und Sie bestanden 1 die ist falsch geschrieben.Sie versuchen, pass
{obj, 'name'}
als zwei Argumente, wenn in der Tat ist ein einzelnes argument, das ein Objekt ist.Stattdessen sollten Sie schreiben
removeProperty(obj, 'name');
und ändernif(obj.hasOwnProperty('prop'))
zuif(obj.hasOwnProperty(prop))
weil das argument ist eine variable mit einem string.Hier ist eine funktionierende version von code:
ist hier und eine optimierte version:
dies ist mein Ansatz:
Funktion removeProperty(obj, prop) {
if(obj.hasOwnProperty(prop)){
}
return false;
}