ホームページ ウェブフロントエンド jsチュートリアル JavaScript のさまざまなトラバースメソッドの詳細な説明

JavaScript のさまざまなトラバースメソッドの詳細な説明

Nov 30, 2017 am 11:24 AM
javascript js 詳しい説明

JavaScript さまざまなトラバーサルメソッドの詳細な説明では、JavaScriptにどのようなトラバーサルメソッドがあるのか​​を確認して詳しく説明し、JavaScriptのさまざまなトラバーサルメソッドを上手にマスターできます。

サンプルの説明を容易にするために、既存の配列とjsonオブジェクトは次のとおりです

var demoArr = ['Javascript', 'Gulp', 'CSS3', 'Grunt', 'jQuery', 'angular'];var demoObj = {
    aaa: 'Javascript',
    bbb: 'Gulp',
    ccc: 'CSS3',
    ddd: 'Grunt',
    eee: 'jQuery',
    fff: 'angular'};
ログイン後にコピー

for

サンプルを直接見ることができます、多用されており、非常に簡単です

(function() {    for(var i=0, len=demoArr.length; i<len; i++) {        if (i == 2) {            // return;   // 函数执行被终止
            // break;    // 循环被终止
            continue; // 循环被跳过
        };        console.log(&#39;demo1Arr[&#39;+ i +&#39;]:&#39; + demo1Arr[i]);
    }
})();
ログイン後にコピー

for ループについては、いくつかの点があります。注意すべき点は、for ループ内の

i は、ループ終了後もスコープ内に存在するため、スコープ内の他の変数への影響を避けるために、関数 を使用することです。自己実行によって分離するには ()();

for(var i=0; i

    var i = 0, len = demo1Arr.length;
    for(; i<len; i++) {};
ログイン後にコピー

ループから抜け出すにはいくつかの方法があります

return 関数の実行が終了します

Break ループが終了します

continue ループがスキップされます

for in

for(var item in arr|obj){} は、配列とオブジェクトを走査するために使用できます

配列を走査するとき、item はインデックス値を表し、arr は対応する要素 arr[item] を表します現在のインデックス値に

オブジェクトをトラバースする場合、itemはキー値を表し、arrはキー値に対応する値を表しますobj[item]

(function() {    for(var i in demoArr) {        if (i == 2) {            return; // 函数执行被终止
            // break;  // 循环被终止
            // continue;  // 循环被跳过
        };        console.log(&#39;demoArr[&#39;+ i +&#39;]:&#39; + demoArr[i]);
    }    console.log(&#39;-------------&#39;);
})();
ログイン後にコピー

inについては、次の注意点があります。

for ループと for in ループでは、ループ終了後も i の値が保持されます。したがって、これを回避するには、自己実行関数を使用してください。

return、break、および continue を使用してループから抜け出すことは、for ループと一致しますが、関数本体では、return は関数の実行の終了を示すことに注意する必要があります。ループは実行を継続できなくなります。また、break はループを終了するだけで、後続のコードは引き続き実行されます。

function res() {   
 var demoArr = [&#39;Javascript&#39;, &#39;Gulp&#39;, &#39;CSS3&#39;, &#39;Grunt&#39;, &#39;jQuery&#39;, &#39;angular&#39;];  
  for(var item in demoArr) {      
    if (item == 2) {       
         return;
        };        
        console.log(item, demoArr[item]);
    }    
    console.log(&#39;desc&#39;, &#39;function res&#39;); //不会执行}
ログイン後にコピー

forEach

demoArr.forEach(function(arg) {})
ログイン後にコピー

パラメータargは配列内の各項目の要素を表します

demoArr.forEach(function(e) {    if (e == &#39;CSS3&#39;) {        return;  // 循环被跳过
        // break;   // 报错
        // continue;// 报错
    };
    console.log(e);
})
ログイン後にコピー

注意すべき点は次のとおりです

forEachはオブジェクトを走査できません

forEach は IE、Firefox、Chrome ではこのメソッドを実装できません

ForEach は Break を使用できず、ループから抜け出すことができます。return を使用する場合、効果は for ループで continue を使用するのと同じです

do/while

関数の具体的な実装は以下の通りですが、注意すべき点が1つあります。 continueを使用する場合、最後にi++を置くと、i++の値は決して変更されず、最終的には変更されます。無限ループに陥ってしまいます。したがって、do/while を使用する場合は注意が必要です。

不建议使用do/while的方式来遍历数组
ログイン後にコピー
// 直接使用while
(function() {    var i = 0,
        len = demoArr.length;    while(i < len) {        if (i == 2) {            // return; // 函数执行被终止
            // break;  // 循环被终止
            // continue;  // 循环将被跳过,因为后边的代码无法执行,i的值没有改变,因此循环会一直卡在这里,慎用!!
        };        console.log(&#39;demoArr[&#39;+ i +&#39;]:&#39; + demoArr[i]);
        i ++;
    }    console.log(&#39;------------------------&#39;);
})();// do while(function() {    var i = 0,
        len = demo3Arr.length;    do {        if (i == 2) {            break; // 循环被终止
        };        console.log(&#39;demo2Arr[&#39;+ i +&#39;]:&#39; + demo3Arr[i]);
        i++;
    } while(i<len);
})();
ログイン後にコピー

$.each

$.each(demoArr|demoObj, function(e, ele))
ログイン後にコピー

は、配列とオブジェクトを走査するために使用できます。ここで、eはインデックス値またはキー値を表し、eleは値valueを表します

$.each(demoArr, function(e, ele) {    
    console.log(e, ele);
})
ログイン後にコピー

出力は

0 "Javascript"
1 "Gulp"
2 "CSS3"
3 "Grunt"
4 "jQuery"
5 "angular"
ログイン後にコピー

です。ここで注意すべき点

ループをスキップして後続のループの実行を継続するには、return または return true を使用します

ループの実行を終了するには return false を使用しますが、関数の実行は終了しません

Break と continue は使用できませんループをスキップするには

ループ内の This 出力される値は次のようになります

console.log(this);//String {0: "C", 1: "S", 2: "S", 3: "3", length: 4, [[PrimitiveValue]]: "CSS3"}
console.log(this == ele);// true
ログイン後にコピー

上記の this 値について、それを走査します

$.each(this, function(e, ele) { 
   console.log(e, ele);
})
// 0 c
// 1 s
// 2 s
// 4 3
ログイン後にコピー
为什么length 和 [[PrimitiveValue]]没有遍历出来?突然灵光一动,在《javascript高级编程》中找到了答案,大概意思就是javascript的内部属性中,将对象数据属性中的Enumerable设置为了false
ログイン後にコピー
// 查看length的内部属性console.log(Object.getOwnPropertyDescriptor(this, &#39;length&#39;));// Object {value: 4, writable: false, enumerable: false, configurable: false}
ログイン後にコピー
$.each 中的 $(this) 与this有所不同,不过遍历结果却是一样,你可以在测试代码中打印出来看看
ログイン後にコピー

$(selector).each

は DOMList を走査するために特別に使用されます

$(&#39;.list li&#39;).each(function(i, ele) {    console.log(i, ele);    // console.log(this == ele); // true
    $(this).html(i);    if ($(this).attr(&#39;data-item&#39;) == &#39;do&#39;) {
        $(this).html(&#39;data-item: do&#39;);
    };
})
ログイン後にコピー

i: シーケンス値 ele: 現在トラバースされている DOM 要素のみ

これは現在トラバースされている DOM 要素です。jQuery メソッドを呼び出すことはできません

$(this) == $(ele) 現在トラバースされている jquery オブジェクト要素を使用すると、jquery メソッドを呼び出して dom 操作を実行できます

DOMList の走査で使用します

domList は配列ではなくオブジェクトであるため、キー値が 0、1、2... であるためです。配列と似た感じですが、直接走査した結果は以下の通りです

var domList = document.getElementsByClassName(&#39;its&#39;);
for(var item in domList) {
    console.log(item, &#39;:&#39; + domList[item]);
}
// 0: <li></li>
// 1: <li></li>
//    ...
// length: 5
// item: function item() {}
// namedItem: function namedItem() {}
ログイン後にコピー

それで、domListを走査するためにfor inを使っているので、domListを配列に変換する必要があります

var res = [].slice.call(domList);for(var item in res) {}
ログイン後にコピー
rree

ちょっと補足

如果你发现有些人写函数这样搞,不要惊慌,也不要觉得他高大上鸟不起

+function(ROOT, Struct, undefined) {
    ... 
}(window, function() {    function Person() {}
})
ログイン後にコピー

()(), !function() {}() +function() {}() 三种函数自执行的方式

以上就是JavaScript 各种遍历方式详解的所有内容,希望会给大家带来帮助吧

相关推荐:

JavaScript 易错知识点整理

处理JavaScript异常的方法

JavaScript的数组去重方法

以上がJavaScript のさまざまなトラバースメソッドの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Win11での管理者権限の取得について詳しく解説 Win11での管理者権限の取得について詳しく解説 Mar 08, 2024 pm 03:06 PM

Windows オペレーティング システムは世界で最も人気のあるオペレーティング システムの 1 つであり、その新バージョン Win11 が大きな注目を集めています。 Win11 システムでは、管理者権限の取得は重要な操作であり、管理者権限を取得すると、ユーザーはシステム上でより多くの操作や設定を実行できるようになります。この記事では、Win11システムで管理者権限を取得する方法と、権限を効果的に管理する方法を詳しく紹介します。 Win11 システムでは、管理者権限はローカル管理者とドメイン管理者の 2 種類に分かれています。ローカル管理者はローカル コンピュータに対する完全な管理権限を持っています

Oracle SQLの除算演算の詳細説明 Oracle SQLの除算演算の詳細説明 Mar 10, 2024 am 09:51 AM

OracleSQL の除算演算の詳細な説明 OracleSQL では、除算演算は一般的かつ重要な数学演算であり、2 つの数値を除算した結果を計算するために使用されます。除算はデータベース問合せでよく使用されるため、OracleSQL での除算演算とその使用法を理解することは、データベース開発者にとって重要なスキルの 1 つです。この記事では、OracleSQL の除算演算に関する関連知識を詳細に説明し、読者の参考となる具体的なコード例を示します。 1. OracleSQL での除算演算

推奨: 優れた JS オープンソースの顔検出および認識プロジェクト 推奨: 優れた JS オープンソースの顔検出および認識プロジェクト Apr 03, 2024 am 11:55 AM

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

PHPモジュロ演算子の役割と使い方を詳しく解説 PHPモジュロ演算子の役割と使い方を詳しく解説 Mar 19, 2024 pm 04:33 PM

PHP のモジュロ演算子 (%) は、2 つの数値を除算した余りを取得するために使用されます。この記事では、モジュロ演算子の役割と使用法について詳しく説明し、読者の理解を深めるために具体的なコード例を示します。 1. モジュロ演算子の役割 数学では、整数を別の整数で割ると、商と余りが得られます。たとえば、10 を 3 で割ると、商は 3 になり、余りは 1 になります。モジュロ演算子は、この剰余を取得するために使用されます。 2. モジュロ演算子の使用法 PHP では、% 記号を使用してモジュロを表します。

Linuxシステムコールsystem()関数の詳細説明 Linuxシステムコールsystem()関数の詳細説明 Feb 22, 2024 pm 08:21 PM

Linux システム コール system() 関数の詳細説明 システム コールは、Linux オペレーティング システムの非常に重要な部分であり、システム カーネルと対話する方法を提供します。その中でも、system()関数はよく使われるシステムコール関数の一つです。この記事では、system() 関数の使用法を詳しく紹介し、対応するコード例を示します。システム コールの基本概念 システム コールは、ユーザー プログラムがオペレーティング システム カーネルと対話する方法です。ユーザープログラムはシステムコール関数を呼び出してオペレーティングシステムを要求します。

Linuxのcurlコマンドの詳しい説明 Linuxのcurlコマンドの詳しい説明 Feb 21, 2024 pm 10:33 PM

Linuxのcurlコマンドの詳細な説明 要約:curlは、サーバーとのデータ通信に使用される強力なコマンドラインツールです。この記事では、curl コマンドの基本的な使用法を紹介し、読者がコマンドをよりよく理解して適用できるように実際のコード例を示します。 1.カールとは何ですか? curl は、さまざまなネットワーク要求を送受信するために使用されるコマンド ライン ツールです。 HTTP、FTP、TELNETなどの複数のプロトコルをサポートし、ファイルアップロード、ファイルダウンロード、データ送信、プロキシなどの豊富な機能を提供します。

C言語学習ルートを詳細に分析 C言語学習ルートを詳細に分析 Feb 18, 2024 am 10:38 AM

ソフトウェア開発の分野で広く使用されているプログラミング言語として、C 言語は多くの初心者プログラマーにとって最初の選択肢です。 C言語を学ぶと、プログラミングの基礎知識を定着させるだけでなく、問題解決能力や思考力も向上します。この記事では、初心者が学習プロセスをより適切に計画できるようにするための C 言語学習ロードマップを詳しく紹介します。 1. 基本的な文法を学ぶ C 言語の学習を始める前に、まず C 言語の基本的な文法規則を理解する必要があります。これには、変数とデータ型、演算子、制御ステートメント (if ステートメント、

numpyのバージョンクエリメソッドの詳細説明 numpyのバージョンクエリメソッドの詳細説明 Jan 19, 2024 am 08:20 AM

Numpy は、豊富な配列演算関数とツールを提供する Python 科学計算ライブラリです。 Numpy のバージョンをアップグレードする場合、互換性を確保するために現在のバージョンをクエリする必要がありますが、この記事では Numpy のバージョン クエリの方法と具体的なコード例を詳しく紹介します。方法 1: Python コードを使用して Numpy のバージョンをクエリします。Python コードを使用して簡単に Numpy のバージョンをクエリできます。実装方法とサンプル コードは次のとおりです: importnumpyasnpprint(np

See all articles