私は即座に説明することはできませんし、したいと思わない問題に遭遇しました。次のコードを書くと返品時にマップが未定義
this.metadata = json.metadata.map((x) => {return new Metadatum(x);});
console.log(this.metadata[0].value);
出力はjson.metadataのすべての要素で '未定義'です。 、私は次のよう記述する場合
json.metadata.map(x => this.metadata.push(new Metadatum(x)));
console.log(this.metadata[0].value);
は、今私は正しい結果を得る(マップ機能の悪い使用を、私はちょうどここのforEachを書くことができ知っているとの結果が同じである)、未定義ではありません。
this.metadata(Metadatum [])の割り当てが定義されていないのはなぜですか?
それは 'this.metadata'はすでに前に有効な値を持っており、あなたの第二の方法がうまくいかないのいずれかが、あなたが以前の要素をクリアしていないので、あなたがそれを見ていないということだろう新しいものを押す前に? – CherryDT
@CherryDT this.metadataは、基本的にはそれ以上の配列として宣言されました。 (メタデータ:Metadatum []) –