2013-05-13 81 views
2

讓我詳細說明問題:計數在另一個對象內匹配的對象

我想定義一個父對象,例如usedCars。然後在usedCars裏面我想添加一些汽車。當然,我希望能夠根據數據計算匹配usedCars的數量。

這是我使用的,但因爲我是新手,我不能前進!

var usedCar = { 
     //constructor for cars 
     car: function(model, year, miles){ 
      this.model = model; 
      this.year = year; 
      this.miles = miles; 
     }, 
     //some objects 
    } 

因此,如果我實例化一個新的usedCar我應該做以下?

var shelby = new usedCar.car('Shelby', 1990, 7500); 
    // i have no idea is this working or not! 

所以,如果一切運作良好,我要計算匹配usedCar

usedCar.prototype.findIt = function(maxMilage){ 
     //should i use for in or something like that here? 
     // i want to search through many available used cars and 
     // count based on maxMilage arg. 
    } 

可能有人幫我數?我知道我在JS和英語都很蹩腳,哈哈。 如果我錯了,請給我一些關於如何實現這種情況的建議。

謝謝大家。

+0

第一部分:是的,這會工作。將代碼粘貼到控制檯並獲取shelby.year> 1990;我不明白第二部分。你會在哪裏搜索? – Tommi 2013-05-13 12:18:21

回答

3
var usedCar = { 
    carList: [], 
    findIt: function(maxMileage) { 
     var result = []; 
     for(var i=0;i<usedCar.carList.length;i++){ 
      if(usedCar.carList[i].miles < maxMileage) { 
       result.push(usedCar.carList[i]); 
      } 
     } 
     return result; 
    }, 
    //constructor for cars 
    car: function(model, year, miles){ 
     this.model = model; 
     this.year = year; 
     this.miles = miles; 
     usedCar.carList.push(this); 
    }, 
    //some objects 
} 
var shelby = new usedCar.car('Shelby', 1990, 7500); 
var searchResults = usedCar.findIt(10000); 
console.log(searchResults.length); // Number of matching cars 
+0

謝謝,現在我明白了,我怎麼能實現我的想法。我應該使用數組來存儲數據,而不是簡單的對象。 – 2013-05-13 12:28:42

+1

+1更好的對象結構 – Drakoumel 2013-05-13 12:33:31

0

寫在記事本中,但這應該工作..

function maxMilage(number) { 
int counter = 0; 
for (var i=0;i<usedCar.carList.length;i++) 
{ 
    if(usedCar[i].miles < number) 
    { counter++; } 
} 
console.log(counter); 
} 
+0

他的代碼沒有定義carList,所以這不起作用。我想你從我的例子中拿走了它。另外,usedCar上沒有「英里」屬性。 – sh0ber 2013-05-13 12:28:02

+0

大聲笑,我沒有意識到你已經改變了他的代碼。 – Drakoumel 2013-05-13 12:31:49

相關問題