我正在建立一个计算器,以确定孩子绞痛的持续时间。
我让计算器正常工作只需要它获取它获得的值并在数组中运行它并将下一个最接近的值与显示的值匹配,然后将其引用到相关的一周。
因此,例如,如果您选择第2周,然后是第5周,则计算返回的孩子将以.5614399999999999周结束。然后,您将通过wessel_data数组运行.5614,并发现.5614介于第6周和第7周之间。然后,我将采用下一个最接近的周,即第7周并显示而不是.5614。所以它应该说孩子绞痛将在.64周内结束。现在已经找到了.64我希望它输出相关的周数,这样就可以说孩子的绞痛会在7周内结束。
这是我为了找到下一个相关值而编写的,但无法使其工作。
function closest (num, wessel_data) {
var curr = wessel_data[0];
var diff = Math.abs (num - curr);
for (var val = 0; val < wessel_data.length; val++) {
var newdiff = Math.abs (num - wessel_data[val]);
if (newdiff < diff) {
diff = newdiff;
curr = wessel_data[val + 1];
}
}
return curr;
}
我也有一个小提琴,所以你可以看到我在说什么。
答案 0 :(得分:0)
我认为你想要wessel_data的索引,而不是数据本身。那只是为了比较。所以在这个函数集curr = val + 1
中。不是wessel_data[val + 1]
。
你在小提琴中根本没有使用这个功能,所以很难说出你到底在做什么。
我的建议是考虑在输入时你想要返回什么值,然后从那里开始工作。