javascript - 通过 DOM 获取值,然后过滤数组以获取值返回 undefined
问题描述
我编写了一个函数,该函数应该过滤数组并返回与给定值关联的值。例如,通过知道一个名字,我想得到首字母。
大批
let members = [
{
id: 1,
memberFullName: "Ben Stiller",
memberInitials: "BS"
},
{
id: 2,
memberFullName: "Michael Jackson",
memberInitials: "MJ"
}
];
功能
function findMemberInitials(object) {
let result = members.filter( obj => {
return obj.memberFullName == object;
})[0].memberInitials;
}
当我像 findMemberInitials("Ben Stiller"); 这样运行数组时 它按预期返回 BS。
当我尝试先从用户输入中获取值然后通过函数运行它时,它返回未定义。
let getMemberName = document.getElementById("name").value;
let getMemberInitials = findMemberInitials(getMemberName);
console.log(getMemberInitials); //returns undefined.
我不太确定我做错了什么。我尝试将其解析为字符串,但没有帮助。
解决方案
你没有从函数中返回任何东西。其次你应该使用find()
let members = [
{
id: 1,
memberFullName: "Ben Stiller",
memberInitials: "BS"
},
{
id: 2,
memberFullName: "Michael Jackson",
memberInitials: "MJ"
}
];
function findMemberInitials(object) {
return (members.find(obj => obj.memberFullName === object) || {}).memberInitials;
}
console.log(findMemberInitials("Michael Jackson"))
推荐阅读
- java - android studio中的自定义回收器视图显示
- python - Python-Tkinter 最佳结构化方法
- r - 如何在特定列上使用 sapply 函数?
- checkbox - 在 Drupal 7 中禁用 webform 中的 required 选项
- ios - 使用 Capacitor 在 ios 上进行深度链接 - “错误没有具有域权利的应用程序”
- python - 不同容器外壳上的 Python 子进程
- angular - Angular11芯片防止用户输入错误值
- autodesk-forge - Autodesk Forge - 查看器(标记扩展)屏幕截图在 iOS 上恢复
- node.js - 如何在与 localhost 不同的主机中启动 node express 应用程序
- vba - 首次使用 Outlook VBA 后,工作事件代码不再触发