首页 > 解决方案 > 未捕获的 TypeError:work.filter 不是函数

问题描述

我似乎无法弄清楚为什么我会收到此错误

Uncaught TypeError: work.filter is not a function
    at computing_experience.js:7
    at Array.map (<anonymous>)
    at computing_experience.js:5

在数组上运行过滤器方法(从单独的文件导入)时,有人有什么想法吗?

import workExpArray from "../Arrays/workExpArray.js";

const workx = document.querySelector(".workexp");

const newArticle = workExpArray.map((work) => {
  let arrayItem = work
    .filter(function (workexp) {
      if (workexp.industry === "Computing") {
        return true;
      } else if (workexp.industry != "Computing") {
        return false;
      }
    })
    .map((workexp) => {
      let workExpArticle = document.createElement("article");
      workExpArticle.classList.add("workexp__article");
      workExpArticle.setAttribute("id", workexp.id);
      if (typeof workexp.secondaryRole === "string") {
        workExpArticle.innerHTML = `
              <SOME HTML HERE>
          `;
      } else {
        workExpArticle.innerHTML = `
              <MORE HTML HERE>
          `;
      }
      return workExpArticle;
    });
  if (workexp.industry === "Computing") {
    arrayItem.forEach((workexp) => {
      workx.append(workexp);
    });
  }
});

这是我在这里的第一个问题,我对编写代码相当陌生,所以您可能需要更多上下文:) 如果需要,请告诉我!

谢谢你的帮助!奥利

标签: javascripthtml

解决方案


当您调用work.filter它时发生错误在我看来,这work不是一个数组,因此没有命名filter为调用的函数,这就是引发错误的原因。确保您导入的数组是二维的,这意味着它的元素也是数组


推荐阅读