簡體   English   中英

Javascript 返回未定義的值

[英]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
    };
});

據我所知,可能有兩種情況:-

  1. 根據您在campusData數組變量中傳遞的數據,您的條件不滿足。
  2. 你沒有返回departmentData
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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM