我遇到了一个我不能立即解释并想要解决的问题。如果我编写以下代码使用返回时映射未定义
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 []) –