2013-05-13 60 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

相关问题