2017-01-06 11 views
0

jQueryのマップ関数に条件を入れようとしています。私の問題は、マップ関数の値に同じ番号が必要ではないということです。同じ場合は、警告ボックスを表示したい。マイマップ機能コードは、このようなものです:jQueryのマップ関数に条件を入れる方法は?

var rankbox= $('input[type=text][class = cate_rank]').map(function() { 
    return this.value; 
}).get(); 

私はそれは大丈夫だが、私は1,2,3,2,5のような値を取得する場合、私は警告ボックスを表示したい1,2,3,4,5のような値を取得する場合。出来ますか?

jQueryのマップ関数に条件を入れるにはどうすればいいですか?

function change_rank() { 
    var rankbox= $('input[type=text][class = cate_rank]').map(function() { 
    if() { 
    } else { } 
    return this.value; 
    }).get(); 
+0

あなただけの自分自身に答えたり何を与えましたか? ;-) –

+0

はい、どのような条件を入れなければなりませんか? – solanki

+0

とどのような条件を満たしたいですか? –

答えて

0
var vals = [] 
$('input[type=text][class = cate_rank]').each(function(){ 
    if($(this).val() && (typeof vals[$(this).val()] == 'undefined')){ 
     vals[$(this).val()] = 1; 
     var last_val = $(this).val(); 
    }else if($(this).val() && (typeof last_val != 'undefined') && parseInt(last_val) > parseInt($(this).val())){ 
     alert('Whooah! Something went terribly wrong! Inputs don\'t have values ordered incrementally!'); 
    }else{ 
     alert('Whooah! Something went wrong! We got two inputes with same value!'); 
    } 
}); 
0

あなたはこれを試すことができDUPチェックするために探している場合は、この、

var rankbox= $(".test").map(function() { 
    return this.value; 
}).get(); 

var sorted_arr = rankbox.slice().sort(); 

var results = []; 
for (var i = 0; i < rankbox.length - 1; i++) { 
    if (sorted_arr[i + 1] == sorted_arr[i]) { 
     results.push(sorted_arr[i]); 
    } 
} 
var rankbox= $(".test").map(function() { 
    if($.inArray(this.value, results) > -1){ 
    alert(this.value+" is duplicate"); 
    } 
    return this.value; 
}).get(); 

チェック私はこのlink

0

の参照を取っ:

var x=[1,2,3,2,5] 
 
var has=!x.every(function(v,i) { 
 
\t return x.indexOf(v) == i; 
 
\t }); 
 

 
\t console.log(has);//true means dup found else not found.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

オブジェクトを試すことができます。この点を確認してください。


function change_rank() { 
    var temp = {}; 
    var rankbox= $('input[type=text][class = cate_rank]').map(function() { 
    if(temp[this.value]==undefined) { 
     temp[this.value] = this.value; 
    } else { 
     alert('the same value'); 
    } 
    return this.value; 
}).get(); 
関連する問題