0

文字列のセットをループして、それらがすべて互いに同一であるかどうかを確認したいと思います。ループされるすべての文字列が同一である場合、1 つの関数を実行したいと思います。そうでない場合は、別の機能を実行します。

$(".variationPrice").each(function(){
    var price = $(this).text();
        if(price == price){
             allMatch();
        } else{
             notMatch();
        }
});

別の言い方をすれば、次のデータがある場合、次のように実行されますallMatch(): $55、$55、$55

次のデータがある場合、実行されますnoMatch(): $55、$45、$55

上記のコードは機能しませんが、出発点として機能します。上記のコードでは、価格は常に価格と一致します。最初の価格を変数に格納し、その後のすべての結果を最初の価格と比較する方法を見つける必要があります。jquery/javascriptを介して文字列を比較する良い方法は何ですか?

UPDATE 1つのアイデアは、すべてを配列にプッシュしてから、次のように配列内に重複があるかどうかを確認することです。

var array1=[2,2,1,2,2,2];
function checkForDuplicates(arr){
var x = arr[0];
for(var i=1;i<arr.length;i++){
    if(x!=arr[i]){return 'at least one duplicate found'}
    }
return 'no duplicates found';
}
4

1 に答える 1

1

最初のコードでは、 each() スコープの外から利用できるいくつかの変数が必要になるだけです。このコードでうまくいくはずです。

var allMatch = true;
var price;
$(".variationPrice").each(function(){
    if (price === undefined) {
        price = $(this).text();
    }
    if (price != $(this).text()){
        allMatch = false;
        return false; // No need to check the rest of the array..
    }
});

if (allMatch) {
    allMatch();
} else {
    notMatch();
}

コメントで提案されているように最適化されています。

于 2013-08-18T23:44:16.807 に答える