获取年龄=无穷大,同时试图获得最小和最大年龄

获取年龄=无穷大,同时试图获得最小和最大年龄

问题描述:

我正在实施一个项目,在该项目中我必须找到笼中存在的小鼠的minimum和k年龄。获取年龄=无穷大,同时试图获得最小和最大年龄

我使用的代码是:

var earTags = ""; 
      var miceAge = ""; 
      var genoTypes = ""; 
      for (var curr_mice_cnt = 0, mice_len = data.mice_info.length; curr_mice_cnt < mice_len; curr_mice_cnt++) 
      { 
       alert("Inside for loop"); 
       var m_info = data.mice_info[curr_mice_cnt]; 
       console.log("Mice Len="+data.mice_info.length); 
       earTags = earTags + m_info.ear_tag + ", " ; 
       miceAge = miceAge + m_info.age + ", "; 
       genoTypes = genoTypes + getGenotypeName(m_info.genotype_id) + ", "; 

       var lowest = Number.POSITIVE_INFINITY; 
       var highest = Number.NEGATIVE_INFINITY; 
       var tmp; 
       for (var i=miceAge.length-1; i>=0; i--) { 
        tmp = miceAge[i].Cost; 
        if (tmp < lowest) lowest = tmp; 
        if (tmp > highest) highest = tmp; 
       } 
       console.log(highest, lowest); 

      } 

现在我想显示miceage这是字符串,我想找到最小和字符串的最大价值,我得到的是错误Miceage=Infinity

任何人都可以请帮我实现这一点,或者你可以建议任何其他代码来实现这一点。

+3

我敢肯定你使用了循环内的错误变量。你把'miceAge'当作一个对象数组,但它是一个字符串。 – JJJ 2013-03-20 06:30:34

+0

@Juhana,可以请你建议如何实现Miceage作为一个字符串(获取最大值和最小值) – Catmandu 2013-03-20 06:35:37

+0

要么你不明白我的意见,要么我不了解你的... – JJJ 2013-03-20 06:38:26

您发布的代码有几个问题。

  • 首先,您根本不需要inner for循环,因为您正在跟踪data.mice_info数组上的最小/最大值。
  • 其次,你在迭代内部循环中的一个miceAge,它是一个字符串,所以miceAge [i] .Cost将会出现未定义,这将比大于/小于比较都会失败。

我建议像下面这样:

var lowest = Number.POSITIVE_INFINITY; 
var highest = Number.NEGATIVE_INFINITY; 
for (var curr_mice_cnt = 0, mice_len = data.mice_info.length; curr_mice_cnt < mice_len; curr_mice_cnt++) { 
    var tmp = data.mice_info[curr_mice_cnt]; 
    if (tmp.age < lowest) lowest = tmp.age; 
    if (tmp.age > highest) highest = tmp.age; 
} 
console.log(lowest, highest); 
+0

我已更新问题可以请您检查 – Catmandu 2013-03-20 06:56:14

+0

我不认为您了解您的代码存在问题。您仍然追加到一个字符串。尝试这样做:var foo =“1,2,3”;的console.log(FOO [2]);你期望看到什么?究竟发生了什么? – 2013-03-20 07:11:02

+0

..我已经存储鼠标年龄在string-miceAge.I要显示该字符串的最大和最小值 – Catmandu 2013-03-20 07:21:22