我遇到了一個我不能立即解釋並想要解決的問題。如果我編寫以下代碼使用返回時映射未定義
this.metadata = json.metadata.map((x) => {return new Metadatum(x);});
console.log(this.metadata[0].value);
對於json.metadata中的每個元素,輸出都是'未定義的'。
如果,我寫了下面的(不好用的地圖功能的,我知道我可以只寫一個foreach這裏,結果都是一樣的)
json.metadata.map(x => this.metadata.push(new Metadatum(x)));
console.log(this.metadata[0].value);
現在我得到正確的結果,而不是不確定的。
爲什麼對this.metadata(它是一個Metadatum [])的賦值沒有定義?
難道是'this.metadata'之前已經具有有效的值,你的第二個方式不工作,要麼,但你看不到它,因爲你不清除由先前的元素在推新的之前? – CherryDT
@CherryDT this.metadata基本上被聲明爲一個數組。 (元數據:Metadatum []) –