Как засунуть в цикл?
if (plosh <= 3) {var koef = 1}
else if (plosh <= 3.3) {var koef = 0.98}
else if (plosh <= 3.6) {var koef = 0.97}
else if (plosh <= 4.0) {var koef = 0.96}
else if (plosh <= 4.3) {var koef = 0.95}
else if (plosh <= 4.6) {var koef = 0.94}
else if (plosh <= 5.0) {var koef = 0.93}
итдподскажите плиз! как сократить |
Лучше написать формулу и вычислять по ней
var koef = (1 - (plosh - 3) / 33).toPrecision(2); |
j0hnik,
<script>
function fn(plosh)
{ var koef = 1;
for (var i=0,k = 3; k < plosh; i++) {
k += (i + 1)% 3 ? .3 : .4;
k = +k.toFixed(1)
koef -= i ? 0.01 : 0.02 ;
koef = +koef.toFixed(2)
}
return koef
}
var test = [3,3.3,3.6,4,4.3,4.6,5,5.3];
function foo(plosh)
{
var koef = (1 - (plosh - 3) / 33).toPrecision(2);
return +koef
}
for (var i=0; i<test.length; i++) {
var plosh = test[i];
document.write([plosh.toFixed(1),fn(plosh),foo(plosh) ].join(" = ")+"<br>")
}
document.write("<br>");
for (var i=0; i<test.length; i++) {
var plosh = test[i]+.1;
document.write([plosh.toFixed(1),fn(plosh),foo(plosh) ].join(" = ")+"<br>")
}
</script>
|
Цитата:
var a=[
{plosh: 3, koef: 1},
{plosh: 3.3, koef: 0.98},
{plosh: 3.6, koef: 0.97},
{plosh: 4.0, koef: 0.96},
{plosh: 4.3, koef: 0.95},
{plosh: 4.6, koef: 0.94},
{plosh: 5.0, koef: 0.93}
];
var plosh=4;
for (var i=0; i<a.length; i++) {
if (plosh<=a[i].plosh) {
var koef=a[i].koef;
break;
};
};
alert(koef);
|
ksa,
если plosh = 20? |
Цитата:
У него такие варианты не обрабатываются в примере... :no: |
Цитата:
Цитата:
|
Вложений: 1
Цитата:
1. Берешь свои точки, строишь по ним график функции (см. вложение). 2. Убеждаешься, что на интервале от >=3.3 х график, по сути, представляет из себя прямую. 3. Находишь уравнение прямой по двум точкам, 4. Получившееся уравнение заворачиваешь в функцию:
function foo(x) {
return -0.03266666666666666*x+1.09
}
при этом не забываешь дописать условие для plosh <= 3 (я этого не далал) 5. используешь эту функцию :)
function foo(x) {
return -0.03266666666666666*x+1.09
}
alert(foo(3.3)) // 0.98
alert(foo(3.6)) // 0.97
alert(foo(4.0)) // 0.96
|
Спасибо всем =))) столько ответов.
|
Цитата:
|
| Часовой пояс GMT +3, время: 15:58. |