【发布时间】:2017-10-21 05:12:31
【问题描述】:
我的函数中有这段代码
let packName: string = respPack.find(a => {a.id == 'name_input'}).answer.replace(/ /,'_');
我要做的是通过匹配 id 找到对象并提取它的 answer 属性的值。截至目前,我收到一条错误消息告诉我
无法读取未定义的属性答案。
我是否尝试以正确的方式做到这一点?这是我的函数的其余部分,所以你可以看到发生了什么。
saveResponses(){
const respPack = this.ResponseList;
const sendTarget: FirebaseObjectObservable<any> = this.afdb.object('/submissions');
let dataLoad:{ [prop : string]: Array<any> } = {};
let packName: string = respPack.find(a => {a.id == 'name_input'}).answer.replace(/ /,'_');
respPack.forEach( a => {
if(a.answer){
let data = { question: a.question, answer: a.answer, id: a.id };
dataLoad[packName].push(data);
}
else if(a.responses){
let dataChunk = { question: a.question, id: a.id, responses: Array<any> };
a.responses.forEach(resp => {
let respChunk = { response: resp.response, value: resp.value, id: resp.id };
dataChunk.responses.push(respChunk);
});
dataLoad[packName].push(dataChunk);
}
});
sendTarget.set(dataLoad);
}
【问题讨论】:
-
你能用
===代替==吗? -
如果
packName是undefined会发生什么?
标签: javascript angular typescript