ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript_javascript スキルにおける for-in トラバーサルメソッドの紹介例

JavaScript_javascript スキルにおける for-in トラバーサルメソッドの紹介例

WBOY
WBOYオリジナル
2016-05-16 17:00:351112ブラウズ

概要: for-in トラバーサル メソッドのループ カウンタは、通常の for ループとは異なり、オブジェクトの属性/メソッド名になります。 for-in は / メソッドがリストされている属性を継承します。これを使用する場合は特別な注意が必要です。

JavaScript では、従来の for ループに加えて、トラバーサル操作用の for-in メソッドが定義されています。データ ソースによって使用方法が異なります。
(1) オブジェクトのトラバース:

コードをコピー コードは次のとおりです:

var 魚 = {
頭 : 1,
尾 : 1,
}
for(魚の var prop) {
console.log(fish[prop]);

デバッグ中に観察してください。プロパティは順番に「頭」、「末尾」です。つまり、オブジェクトのプロパティを走査するとき、プロパティは文字列型で存在し、ループ カウンタはオブジェクトのプロパティ名です。物体。
(2) 配列を走査

コードをコピー コードは次のとおりです。
var arr = [ '1', 'two', 'three'];
for(var prop in arr) {
console.log(prop);

デバッグ中に観察してください: prop は順番に '0'、'1' です。つまり、配列を走査するときに文字列型で存在します。違いは、ループ カウンタが配列要素の添字であることです。 (このとき、for ループを使用して出力してみると、結果は for-in と一致します)
コードに次のように追加すると、



Copyコード コードは次のとおりです: if(Object.prototype.clone === 'unknown')
Object.prototype.clone = function () {};


出力結果は次のとおりです: 0,1,clone
for ループを使用して出力しても、それは 0,1 になります。 for-inループは現在操作しているデータソースの型の属性をトラバースアウトして使用するため(同様に対象のfishに対してfor-inを使用した場合にはcloneも出力されます)、forを使用する際には文字列を引く必要があります-in to traverse: オブジェクト自身の属性のみを操作する場合は、hasOwnProperty() メソッドを使用するなど、継承された属性を使用して削除する必要があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。