-3

MinvalueプロパティとMaxvalueプロパティを持つクラスの配列があります。

私の配列に3つの要素があるとします

First MinValue=0 and  MaxValue=25
Second MinValue=26 and  MaxValue=50
Third MinValue=75 and  MaxValue=100

最小値と最大値は0〜100の間です。

ここで、3つのオブジェクトを持つ上記の配列から欠落している範囲を見つけたいと思います。

上記の配列で欠落している範囲は51〜75です

その時点で複数の欠落値が存在する可能性があります。最小のMinValueを持つ範囲を見つけたいと思います。

javascriptでコードを書きたい。

これを解決するのを手伝ってください。

4

2 に答える 2

0

現在の minValue から前の maxValue を引きます。差は常に 1 である必要があります。すべての値をループして、不足している範囲を見つけます。

于 2013-02-27T05:46:05.040 に答える
0

何かを始めてみて、この問題を自分で処理する必要があります。

var arr = [{ Min :0, Max:25 } , { Min:26, Max:28}, { Min:35, Max:41}, { Min:48, Max:71}];

var range = [];
for(var i = 0; i <= 100; i++)
{
    range.push(true); // first set it as missing...
}

for(var i = 0 ; i < arr.length ; i++)
{
    for(var j = arr[i].Min ; j <= arr[i].Max ; j++)
    {
        range[j] = false; // loop the array and set it to false
    }
}
var missingPart = '';
var start = false;
for(var i = 0 ; i < range.length ; i++) // loop the range array and build result
{
    if(range[i])
    {
        if(!start)
        {
            start = true;
            if(missingPart)
            {
                missingPart+=", ";
            }   
            missingPart += i;
        }
    }
    else
    {
        if(start)
        {
            start = false;
            missingPart += ("-" + (i-1));
        }
    }
}
if(start)
{
    missingPart += ("-100");
}
document.getElementById("counter").innerHTML = missingPart

ここで jsFiddle の結果を見つけてください: http://jsfiddle.net/gm4HG/2/

于 2013-02-27T05:51:42.860 に答える