-2

次のような数値の配列があります。

[10000 , 15000 , 20000 , 25000 , 30000]

変数を取得します。変数は変化し、配列の範囲内のどこにでもあります (例: 23,500)。

配列から最も近い数値を見つける必要がありますが、それは指定された変数よりも小さい必要があります。

これを行う最も簡単な方法は何ですか?(jQueryが使えます)

編集:

私はこれを試しました:

salary = data[3]; // what im trying it on, this = 60001


    // the array is built from a select
$.each($('#home-salary-from').children(), function(){

    salaryArray.push($(this).attr('id'))

})

    //returns [0, 10000 , 15000 , 20000 ...] etc up to 100000.

salaryFrom = salaryArray.filter( function(i){ return i <= salary }).pop();

console.log(salaryFrom)
    //always returns 100000 ??
4

5 に答える 5

0

デモ

var x = [10000, 15000, 20000, 25000, 30000];

function find_closest(y) {
    var z = [];
    $.each(x, function (i, val) {
        if (y > val) {
            z.push(val);
        }
    });
    z.sort();
    return (z[z.length - 1]);
}

alert(find_closest(23500));
于 2013-09-16T10:00:04.533 に答える
0

次のようなものはどうですか:

Array.prototype.closest = function(value) {
    var res = 0;
    for (var i=0; i<this.length; i++) {
        if (this[i] > res && this[i] < value) res=this[i];
    }
    return res;
}

次のように使用します。

var numb = [10000 , 15000 , 20000 , 25000 , 30000].closest(23500);

フィドル

于 2013-09-16T10:00:15.950 に答える