Also mache ich einige Herausforderungen auf Freecodecamp, ich blieb auf einer, der sagt: "Erstellen Sie eine Funktion, die durch ein Array von Objekten (erstes Argument) und gibt ein Array aller Objekte zurück mit übereinstimmenden Eigenschaften und Wertpaaren (zweites Argument). " So sah ich die für die Antwort und kam auf der anderen nächsten Code:Verstehen Rückgabewert einer Funktion
function whatIsInAName(collection, source) {
var arr = [];
var keys = Object.keys(source);
// Filter array and remove the ones that do not have the keys from source.
arr = collection.filter(function(obj) {
return keys.every(function(key) {
return obj.hasOwnProperty(key) && obj[key] === source[key];
});
});
return arr;
}
Ich verstehe, was es tut, was ich kann nicht scheinen, um ist die Rückkehr in den collection.filter warum brauchen wir diese beiden:
return keys.every(function(key) {
return obj.hasOwnProperty(key) && obj[key] === source[key];
Warum der Code nicht nur mit dem zweiten funktioniert.
Kann mir jemand das bitte erklären.
Es ohne 'hasOwnProperty' funktionieren könnte, aber wenn ein Vorfahre des Objekts hat Eigenschaften würden diese auch für das Kind in Betracht gezogen werden. –
Weil Sie 'return' verwenden müssen, um einen Wert von einer Funktion zurückzugeben. Die erste Rückkehr kehrt von der Funktion zurück, die an "alle" übergeben wurde. Die zweite Rückkehr kommt von whatIsInAName zurück. – Carcigenicate
Weitere Informationen zur Methode finden Sie unter https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty. –