2016-04-09 12 views
0

こんにちは私は動的配列のいくつかの範囲に一致している値をチェックしようとしています。例えば、3555と言う金額を持っています。 私は配列[1000,2000,999999]を持っています。通常、私たちは、私が実装する必要がjavascriptの動的配列の範囲をチェックする方法は?

if(3555<100) 
{ 
    //do something 
} 
elseif(3555<2000) 
{ 
    //do something 
} 
elseif(3555<999999) 
{ 
    //do something 
} 

条件が静的量(3555)は、いくつかの値よりも、いくつかの値と少ないが、より具体的にすることを大きいことである、のようなダイナミックレンジを確認するためにif文を使用することができます のようなAmount <1000>2000 今私は入力としてフィードする動的配列を持っています。どのように私は本当の条件をチェックし、配列のインデックスを得ることができますか?誰か助けてくれますか?

答えて

2

そのようなもののためのjQueryの必要はありません。 あなたが望むものを得るための簡単な方法は、範囲配列の各カップルの値をテストし、何かがインデックスを返すように一致するかどうかをテストすることです。たぶん

function test(number, ranges) { 
 
    for (var i = 0; i < ranges.length; ++i) { 
 
    if (number < ranges[i]) { 
 
     return i; 
 
    } 
 
    } 
 
} 
 

 

 
var ranges = [1000, 2000, 999999]; 
 

 
console.log(test(3555, ranges));

+0

インデックスは最後の999999のですか?どうすればいいですか?@ user3 – Anu

+0

'i'の代わりに' i + 1'を返し、下界のインデックスを望んでいると仮定しました;)@Anu – user3

+0

これは動作します:)@ user3 – Anu

1

この1?

getIndex = function(array, amount) { 
for(var i in array.sort()) { 
    if(array[i] > amount) { 
     return i; 
    } 
    } 
    return -1; 
}; 

これは量よりも多い数のインデックスを返します

フィドル:numが値よりも大きい場合ので(これが最初のインデックスを返しますようにあなたは、配列を反復処理できhttps://jsfiddle.net/diegopolido/6wuutsk6/

+0

値が3000以上であるため、99999を満たしています。 @Diego Polido Santana – Anu

+0

この関数は2(999999のインデックス)を返します。フィドルを見て –

1

配列内または-1見つからなかった場合)

function amount(array, num) { 
    array.forEach(function(val, index){ 
     if (val < num) { 
      return index; 
     } 
    }); 
    return -1; 
} 
0

あなたはfilter機能を使用することがあります。

一致している必要があり

var arr = [100, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 999999]; 
 
var min = 1000; 
 
var max = 4010; 
 

 
var resultingArray = arr.filter(function(val, index, ar) { 
 
    return val < max && val > min; 
 
}); 
 

 
document.write('Result is: ' + resultingArray);

0
var theArray = [100,300,800,1000,1300]; 
var goal = 400; 
var nearest= null; 
$.each(theArray, function(){ 
    if (nearest == null || Math.abs(this - goal) < Math.abs(nearest - goal){ 
     nearest = this; 
    } 
}); 
関連する問題