javascript - jsトラバーサルの問題?
大家讲道理
大家讲道理 2017-06-30 09:57:33
0
5
739

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(5)
伊谢尔伦

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

いいねを押す +0
Ty80

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

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

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

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

リーリー

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

いいねを押す +0
伊谢尔伦

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

いいねを押す +0
刘奇

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

リーリー

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

いいねを押す +0
学霸

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

  1. りー
  2. りー
  3. りー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート