黄舟2017-05-19 10:35:49
エラーを報告していませんか? コンソール情報を確認してください
obj.arr[i] この呼び出しは間違っています
obj.arr は存在しません、それは未定義と同等です
unknown[i] 間違いなくエラーが発生します
まず第一に、obj と arr はどちらも [] メソッドを使用して値を取得できます:
この例の 2 つのメソッドの違いは次のとおりです:
obj[arr[i]] は最初に arr[i] を取得し、それを次の値に割り当てます。オブジェクト[]:
obj.arr.[i] は、最初に obj.arr を取得し、次に obj.arr:
を通じて [i] を取得します。 リーリー リーリー巴扎黑2017-05-19 10:35:49
1 つはオブジェクト、もう 1 つは配列であり、これらは 2 つの完全に異なるデータ構造です
オブジェクトのトラバースが使用可能です
リーリー後でエラーが報告されないと言った理由については、for ループの 3 つの式 (セミコロンで区切られた 3 つ) が原因で、obj.length が未定義で false であるため、ループが開始されません。 、obj を与えることもできます。オブジェクトに長さを追加してみてください。サイクルが始まります
阿神2017-05-19 10:35:49
友人、エラーが報告されました...
理由は次のとおりです:
obj[] を使用して、受信文字列を属性名に変換します。つまり:
obj['name']==obj.name が返されます。 true
そして、obj.'name' のドット構文は obj.name に自動的に変換されません。つまり、
obj.'name'==obj.name エラー
正しく理解できているかわかりません。 .