我正在实现一个项目,在该项目中,我必须找到笼子中老鼠的最小值
和 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
.
谁能帮我实现这个,或者你能建议任何其他代码来实现这个。
最佳答案
您发布的代码存在一些问题。
- 首先,您根本不需要内部 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);
关于javascript - 在尝试获取最小和最大年龄时获取 age=infinity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15516702/