javascript - 未捕获的 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);
});
}
});
这是我在这里的第一个问题,我对编写代码相当陌生,所以您可能需要更多上下文:) 如果需要,请告诉我!
谢谢你的帮助!奥利
解决方案
当您调用work.filter
它时发生错误在我看来,这work
不是一个数组,因此没有命名filter
为调用的函数,这就是引发错误的原因。确保您导入的数组是二维的,这意味着它的元素也是数组
推荐阅读
- android - Graphview 库没有正确显示 y 轴,并且人类四舍五入设置为 false?
- java - 在java中执行nextInt函数时如何修复InputMismatchException
- mysql - 在 windows 中安装 MySQL 插件时出错
- javascript - 如何动态设置 HTML 元素的标题属性?
- database - Laravel:在一种方法中创建两个表
- jquery - 无法使用 ajax 和 jquery 从数据表中删除一行 [ajax 调用不起作用]
- laravel - 编辑表单时,上传的文件没有进入上传的字段
- ios - UITextField 键盘在每次按键后关闭
- mysql - MySQL innodb 在更新两个不同的行时出现死锁
- swift - 导航栏的背景图像 iOS SWIFT