0

私はこの単純なループを持っています:

for (i = 0; i < menuitem.length; i += 1) {
    if (menuitem[i].href == window.location) {
        menuitem[i].className = "current"
    } else {
        if (menuitem[i].nodeType !== 3) {
            menuitem[1].className = "current";
        }
    };

「menuitem [i]のすべての結果がfalseの場合」でelseステートメントを置き換えるにはどうすればよいですか? false である単一のステートメントごとに、else ステートメントが実行され、ループ全体が false の場合にのみ実行したいためです。

私は自分自身を明確にしたことを願っています。

助けてくれてありがとう

4

2 に答える 2

2

配列全体に偽の値が含まれているかどうかを確認するには、次のようにします。

var found = false;
for (i = 0; i < menuitem.length; i += 1) {
    if (menuitem[i]) {
        found = true;
    }
}
if (found) {
    // some truthy value was found in the array
} else {
    // no truthy values found in the array
}

配列全体が条件を満たさないかどうかを確認するには、次のようにします。

var found = false;
for (i = 0; i < menuitem.length; i += 1) {
    if (menuitem[i].href == window.location) {
        found = true;
    }
}
if (!found) {
    // no items in the array met your condition 
} else {
    // at least one item in the array met your condition
}
于 2012-09-11T02:08:44.533 に答える
0

追加の依存関係を気にしない場合は、 _. js の _.any. (ソースからメソッドをコピーすることもできます。)

于 2012-09-11T02:07:15.277 に答える