トラバースオブジェクトメソッド
1.for ...で
トラバーサルは最初のプロトタイプチェーントラバーサルの最終出力命令の特性は、それ自体で、オブジェクト自体と(シンボルプロパティを除く)プロトタイプチェーン列挙特性の特性に出力されます。プロトタイプチェーン通過した後、属性を列挙することができます
例えば:
VAR OBJ = { 'name'の"yayaya"、 '年齢':'12は、 'セックス': 'FEMALE' }; Object.prototype.pro1 = 関数(){}; //は、プロトタイプチェーンのプロパティを追加する オブジェクト.defineProperty(OBJ、 '国' 、{ 可算:trueに // 列挙 }); Object.defineProperty(OBJ、 '国家' 、{ 可算:falseに // ない列挙 }) obj.contry = '中国。 用(VARの指標でOBJ){ にconsole.log( 'キー='、インデックス、 '値=' 、OBJ [インデックス]) }
出力:
名前=値= yayayaキー
key = valueの年齢= 12である
キー値=セックス= FEMALE
キー=値= Contry中国
キー= Pro1の値=関数(){}
2.Object.keys()
オブジェクトをトラバース含むオブジェクト自体を返します(シンボル属性を除く)属性配列を挙げることができる。
EG:
VAR OBJ = { '名前': "yayaya"、 '年齢': '12'、 'セックス': '女' }; Object.prototype.pro1 = 関数(){} Object.defineProperty(OBJ、 '国' 、{ 列挙:真、 値: 'CCC' })。 Object.defineProperty(OBJ、 '国' 、{ 列挙:偽 // 不可枚举 }) obj.contry = '中国。 Object.keys(OBJ).forEach(関数(指数){ にconsole.log(インデックス、OBJ [インデックス]) })。
出力:
yayaya名
年齢12で
セックスFEMALE
Contry中国
3.Objcet.getOwnPropertyNames()
出力列挙とオブジェクト自体は、属性の配列を列挙することができない、出力属性は、チェーンのプロトタイプされていない
例えば:
VAR OBJ = { '名前': "yayaya"、 '年齢': '12'、 'セックス': '女' }; Object.prototype.pro1 = 関数(){} Object.defineProperty(OBJ、 '国' 、{ 列挙:真、 値: 'CCC' })。 Object.defineProperty(OBJ、 '国' 、{ 列挙:偽 // 不可枚举 }) obj.contry = '中国。 Object.getOwnPropertyNames(OBJ).forEach(関数(指数){ にconsole.log(インデックス、OBJ [インデックス]) })。
出力:
名前はyayaya
年齢12
性別女性
カントリーCCC
国は未定義
Contry中国
)(4.Reflect.ownKeysを
列挙するか否か、プロパティ名は、記号や文字列であるかどうか、すべてのプロパティのオブジェクトを返します。
EG:
VAR OBJ = { '名前': "yayaya"、 '年齢': '12'、 'セックス': '女' }; Object.prototype.pro1 = 関数(){} Object.defineProperty(OBJ、 '国' 、{ 列挙:真、 値: 'CCC' })。 Object.defineProperty(OBJ、 '国' 、{ 列挙:偽 // 不可枚举 }) obj.contry = '中国。 Reflect.ownKeys(OBJ).forEach(関数(指数){ にconsole.log(インデックス、OBJ [インデックス]) })。
結果を返します。
名前yayayaの
年齢12れ
セックスFEMALE
国CCC
国は未定義
Contry中国を
5 _.keys
アンダースコアウィジェットトラバーサル方法によってのみオブジェクト自体を通過することができ、属性を列挙することができる
例:
VAR OBJ = { '名前': "yayaya"、 '年齢': '12'、 'セックス': '女' }; Object.prototype.pro1 = 関数(){} Object.defineProperty(OBJ、 '国' 、{ 列挙:真、 値: 'CCC' })。 Object.defineProperty(OBJ、 '国' 、{ 列挙:偽 // 不可枚举 }) obj.contry = '中国。 console.log(_キー(OBJ));
出力:
セックス年齢国名
の二つの方法繰り返す。
1.forEach
EGを:
VaRの ARR = [ 'A'、 'B'、 'C'、 'D' ]。 arr.forEach(関数(値、指数){ にconsole.log( '値='、値、 'インデックス=' 、指数); })
出力:
= 0 A =値インデックス
値= B. 1 =インデックス
値= 2 = Cインデックス
値インデックス= D = 3
2.mapは、
各処理トラバーサル対応することができ、各関数呼び出しの結果は、配列返し
例えば:
VaRの ARR = [ 'A'、 'B'、 'C'、 'D' ]。 arr.map(関数(項目、インデックス、アレイ){ にconsole.log(項目、インデックス); })
出力:
0 A
、B 1
、C 2
Dを3
を介して3.forループ
例:
VaRの ARR = [ 'A'、 'B'、 'C'、 'D' ]。 用(VAR ; I <arr.length I ++は、I = 0 ){ にconsole.log(I、ARR [I]) }
出力:
0
1 B
2 C
3 D
で4.For ...
例えば:
VaRの ARR = [ 'A'、 'B'、 'C'、 'D' ]。 用(VAR I でARR){ にconsole.log(:、I、 '値:' 'インデックス' 、ARR [I]) }
出力:
インデックス:0値:
インデックス:値1:Bの
指標:2値:Cの
指数:値3:D
(ES6)の... 5.for
インデックスをトラバースすることができない、唯一の値を横切る、データシンボルを横断することができますtype属性、データ構造を横断するための方法として、この方法では、すべての統一
などを:
VaRの ARR = [ 'A'、 'B'、 'C'、 'D' ]。 用(VaRのARRの値){ にconsole.log( '値' 、値) }
出力:
値
値のb
値Cの
値d
6.利用は插件アンダー
例えば:
VaRの ARR = [ 'A'、 'B'、 'C'、 'D' ]。 VAR _ =( 'アンダースコア'が必要です)。 _.each(ARR、関数(値、インデックス、ARR){ にconsole.log(値、インデックス、ARR) })
出力:
0 '、 'B'、 'C'、' D]
B 1 [ '、 'B'、 'C'、 'D']
C 2 ['、 'B'、」 C」、 'D]
D 3 [ ''、 'B'、 'C'、' D]