我编写了一个函数,该函数应该过滤数组并返回与给定值关联的值。例如,通过知道一个名字,我想获得缩写。
数组
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"))
关于javascript - 通过 DOM 获取值,然后过滤数组以获取该值返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56416475/