検索

ホームページ  >  に質問  >  本文

javascript - jsトラバーサルの問題?

配列に異なる値があるかどうかを調べる必要があります。存在する場合は関数 x を実行し、存在しない場合は関数 y を実行します。しかし、for ループを使用すると、最初に同じものに遭遇した場合は y が実行され、別のものに遭遇するまで x は実行されません。すべてのループを走査して、対応する関数を実行するにはどうすればよいでしょうか?

大家讲道理大家讲道理2742日前745

全員に返信(5)返信します

  • 伊谢尔伦

    伊谢尔伦2017-06-30 09:59:33

    Array.prototype.every() または Array.prototype.some() を使用します

    返事
    0
  • PHP中文网

    PHP中文网2017-06-30 09:59:33

    1. ES5 の array.every メソッドを使用します。これは、すべての関数の実行結果が true の場合、最終結果は true になります。それ以外の場合は、早期に終了し、false が返されます。

    2. for ループを使用するには、配列の最初の要素の値を保存する変数が必要です。配列内に変数と等しくない要素があることが判明したら、ループを開始します。 X を実行するときです (これは壊れる可能性があります)。それ以外の場合、配列に異なる値がない場合は、Y を実行します。

    実際、方法 1 にもこの変数が必要です

    3. 一度に 2 つの配列要素を受け入れる ES5 array.reduce メソッドを使用します。2 つの要素が等しいかどうかを直接比較できます。

    リーリー

    しかし、このメソッドは壊れません

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-30 09:59:33

    for の前に変数を追加し、for で変数が見つかった場合は変更し、for の後に変数が見つかった場合は変更します

    返事
    0
  • 怪我咯

    怪我咯2017-06-30 09:59:33

    for ループを使用する場合は、for の外側に変数をフラグとして定義する必要があります。

    リーリー

    ES6 がサポートされている場合は、Set を使用して配列の重複を排除し、2 つの配列の長さを決定できます。 リーリー

    返事
    0
  • 欧阳克

    欧阳克2017-06-30 09:59:33

    「異なる値がある」という説明は少し曖昧ですが、配列に他の値とは異なる値があるということです。

    1. りー
    2. りー
    3. りー

    返事
    0
  • キャンセル返事