異なる数値範囲が定義されたマップがあります。ユーザが任意の1つの範囲オプションを選択することができますか、あまりにも複数選択することができますJavascriptの数値範囲を計算する
0: 0-10
1: 10-25
2: 25-50
3: 50-100
4: 100-99999
ユーザ選択
var map = [
{
'low':0,
'high':10
},
{
'low':10,
'high':25
},
{
'low':25,
'high':50
},
{
'low':50,
'high':100
},
{
'low':100,
'high':999999
}
];
、以下のような任意の範囲のオプションを選択することができます。ユーザーが0:0-10と1:10-25オプションを選択した場合、1つの範囲、つまり0-25を設定する必要があります(オプション1の値が低く、オプション2の値が高くなります)。同様に、私はJavaScriptでこのアルゴリズムを書いて
0,1,3,4 = 0-25 & 50-100
0,2,4 = 0-10,25-50,100-99999
のような選択の複数のオプションがあることができ
VARマップ= [ { '低':0、 '高いです': 10 }、 { 'ロー':10、 'ハイ':25 }、 { 'ロー':25、 'ハイ':50 }、 { 'ロー':50、 'ハイ'、100 } { 'ロー':100、 'ハイ':999999 }]。
関数getRanges(選択){
var ranges = [],already_used_range = [],low=0,high=0;
for(var i= selected.length-1;i >0; i--) {
console.log('i ='+i);
if(selected[i] - selected[i-1] > 1) {
console.log('here');
if(!$.inArray(selected[i], already_used_range)) {
ranges.push(map[selected[i]]);
}
ranges.push(map[selected[i-1]]);
console.log(ranges);
} else {
console.log('here2');
//console.log('selected.i-1 = ' + selected[i-1]);
console.log('selected.i = ' + selected[i]);
//var lv = i-1;
var lv = i;
console.log('lv =' + lv);
console.log('selected[lv] =' + selected[lv]);
console.log('low = ' + map[selected[lv]-1].low);
console.log('high = ' +map[selected[i]].high);
low = map[selected[lv]-1].low;
if(high ==0) {
var hv = selected[i];
console.log("hv =" + hv);
high = map[hv].high;
}
already_used_range.push(selected[i]);
already_used_range.push(selected[lv]-1);
}
}
console.log("low = " + low);
console.log("high = " + high);
console.log("ranges");
console.log(ranges);
}
VAR = [2,3,4]選択されました。 getRanges(selected);
var selected = [3,4]; getRanges(selected);
var selected = [2,4]; getRanges(selected);あなたのコメントについて
は
あなたは範囲を設定する必要はどういう意味ですか?この範囲を消費するのは何ですか?どのように使用されますか?これらは非常に重要な詳細です。十分な情報が提供されていません。 – philraj
ここにアルゴリズムがあります...選択されたものの中で最も低いもののうち最も低いものと最も高いもののうちの最高のものを探してください。 – Redu
誰かがあなたの宿題をやろうとしていると思いますか?あなたは何もしようとしなかった。オンデマンドでスクリプトを書くのではなく、ここで協力しています。 –