1

我正在实施一个项目,我必须找到minimum笼子里老鼠的年龄和年龄。

我正在使用的代码是:

   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

谁能帮我实现这个,或者你可以建议任何其他代码来实现这个。

4

1 回答 1

3

您发布的代码存在一些问题。

  • 首先,您根本不需要内部 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);
于 2013-03-20T06:37:31.407 回答