0
var myStringArray = ["abcd", "efgh", "ijkl"], foundResult = false;

myStringArray.forEach(function(currentString) {
    if (/\d+/.test(currentString)) {
        console.log("Number found");
        foundResult = true;
    }
});

if(foundResult === false) {
    console.log("Number NOT found");
}

このコードは、問題を示すためのものです。一致したかどうかを確認するには、追加の変数を使用する必要があります。変数なしでこれを処理するエレガントな方法はありますか?

編集:を使用できることはわかっていますが、コードの最後の条件someで見られるように、一致しないケースと一致させたいと思います。if

4

2 に答える 2

5

いくつかの方法を使用します。

if(["abcd", "efgh", "ijkl"].some(function(i){return /\d+/.test(i)})){
    // if matched
} else {
    // handle no match
}
于 2013-11-08T09:21:10.520 に答える
0

forEach を使用する代替手段は次のとおりです。

var a = ['abcd', 'efgh', 'ijkl'];
var r;

if (a.forEach(function(a){r = r || /\d/.test(a)}) || r) {
 alert('found a number');

} else if (r === false) {
 alert('no numbers');
}

しかし、 forEachをサポートするすべての UAもいくつかの をサポートする可能性が高く、一部は の最初の結果で停止するため、おそらくより効率的ですtrue

于 2013-11-08T09:50:28.940 に答える