Ich habe ein Objekt Category
genannt, die ein Verfahren verwendet eine Reihe von Produkten (Product
) iterieren und eine Instanz zurück, die die this.name === query
Bedingung erfüllt: Meinein Objekt in .each Iteration zurückkehrend - JavaScript
function Category(products){
this.products = products;
this.findProductByName = function(query){
$(this.products).each(function(){
return this.name === query;
}
}
}
Product
(für alle Fälle):
function Product(name){
this.name = name;
}
ich eine Instanz von Category
mit Produkten erstellen Sie dann:
var $someCategory = new Category(
[
new Product('foo'),
new Product('bar')
]
)`
und wenn ich rufe:
$someCategory.findProductByName('foo'); // 'undefined'
obwohl:
...
this.findProductByName = function(query){
$(this.products).each(function(){
console.log(this.name === query); // returns 'true'
}
}
...
Was kann ich tun, um ein Objekt zurückzugeben, wenn this.name === query
erfüllt ist?
Der Mechanismus '$ .each()' ignoriert die zurückgegebenen Werte (meist). Was erwarten Sie von ihm? – Pointy
Verwenden Sie [] .filter() und [] .map() anstelle von jedem() – dandavis
@Pointy gibt die richtige 'Product' -Instanz zurück, wenn die Bedingung erfüllt ist, so dass ich nach '$ someCategory' nach Produkten suchen kann . Was meinst du mit "ignoriert die zurückgegebenen Werte"? –