[英]Javascript returning undefined value
這是我的 nuxt js 代碼中的一種方法。
this.allCampusWithDeaprtments = campusData.map(
(item, index) => {
const schoolData = this.deptInsights.filter((row) => {
return row.unit === item.unit;
}).map(row => {
// row.departmentData = row.departmentData || [];
// row.departmentData.push(...this.depts.filter((d) => {
// return d.sisSchoolId === row.sisSchoolId;
// }));
// return row;
const departmentData = this.depts.filter(
d => d.sisSchoolId === row.sisSchoolId
);
return departmentData
});
console.log('department', departmentData);
// );
item.id = `toggle-${index}`;
return {
...item,
schoolData,
// departmentData,
hasOerData: false
};
}
);
departmentData
沒有返回任何值。 可能是什么問題呢? 我想要與代碼中提到的情況相匹配的數據
繼續同事@sebastian-simon 的推理
您的常量在 scope 中是私有的。 因此,它沒有定義。 閱讀這篇文章。
試試這樣:
this.allCampusWithDeaprtments = campusData.map(
let departmentData = null
(item, index) => {
const schoolData = this.deptInsights.filter((row) => {
row.unit === item.unit
departmentData = this.depts.filter((d) => {
d.sisSchoolId === row.sisSchoolId;
return departmentData
})
}
);
console.log('department', departmentData);
// );
item.id = `toggle-${index}`;
return {
...item,
schoolData,
departmentData,
hasOerData: false
};
});
據我所知,可能有兩種情況:-
campusData
數組變量中傳遞的數據,您的條件不滿足。return const departmentData = this.depts.filter((d) => {...
讓我知道,如果它有幫助。
我認為你的問題出在這里:
const departmentData = this.depts.filter((d) => {
d.sisSchoolId === row.sisSchoolId;
return departmentData //
})
過濾器回調需要返回 boolean。 您正在檢查條件d.sisSchoolId === row.sisSchoolId;
但不返回它,而是返回departmentData
。 所以請記住這一點,您的過濾器代碼不應該是:
this.allCampusWithDeaprtments = campusData.map(
(item, index) => {
let departmentData = [];
const schoolData = this.deptInsights.filter((row) => {
departmentData.push(...this.depts.filter((d) => {
return d.sisSchoolId === row.sisSchoolId;
}));
return row.unit === item.unit;
});
console.log('department', departmentData);
// );
item.id = `toggle-${index}`;
return {
...item,
schoolData,
departmentData,
hasOerData: false
};
}
);
編輯新結構
this.allCampusWithDeaprtments = campusData.map(
(item, index) => {
// let departmentData = [];
const schoolData = this.deptInsights.filter((row) => {
return row.unit === item.unit;
}).map(row => {
row.departmentData = row.departmentData || [];
row.departmentData.push(...this.depts.filter((d) => {
return d.sisSchoolId === row.sisSchoolId;
}));
return row;
});
// console.log('department', departmentData);
// );
item.id = `toggle-${index}`;
return {
...item,
schoolData,
// departmentData,
hasOerData: false
};
}
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.