私はjavascriptを学んでおり、メソッド、コンストラクター、およびthis
キーワードを試してみることにしました。プロパティ値内の単語と一致する特定の単語に基づいて車を見つける方法を作成しました。単語が値に一致することが判明した場合は、そのオブジェクトを返します。問題は、複数のオブジェクトが同じプロパティ値を持つ場合、それらの最初のものだけが返されることです。同じ値を持つすべてのオブジェクトを返すにはどうすればよいですか? 簡単に解決できますか、それとも解決策は本当に進んでいますか? キーワードを使用してさまざまなバリエーションを試しましたthis
が、何も機能しませんでした。
//The constructor
function car(make, model, year, condition){
this.make = make;
this.model = model;
this.year = year;
this.condition = condition;
}
//An object that holds properties that are really just more objects
var cars = {
car1: new car("Toyota", "Corolla", 2013, "New"),
car2: new car("Hyundai", "Sonata", 2012, "Used"),
car3: new car("Honda", "Civic", 2011, "Used")
};
//The method
findCar = function(find){
for(var i in cars){
if(cars[i].make.toLowerCase() === find){
return cars[i];
}
else if(cars[i].model.toLowerCase() === find){
return cars[i];
}
else if(cars[i].year === parseInt(find,10)){
return cars[i];
}
else if(cars[i].condition.toLowerCase() === find){
return cars[i];
}
}
};
cars.findCar = findCar;
//This is where I search for cars
cars.findCar(prompt("Enter a car make, model, year or condition").toLowerCase());