Javascript 通过DOM获取值,然后过滤数组中的值,返回未定义的值

Javascript 通过DOM获取值,然后过滤数组中的值,返回未定义的值,javascript,Javascript,我已经编写了一个函数,它应该过滤数组并返回一个与给定值关联的值。例如,通过知道一个名字,我想得到首字母 排列 功能 当我像findMemberInitials(“Ben Stiller”)一样运行数组时;它按预期返回BS 当我首先尝试从at用户输入获取值,然后通过函数运行它时,它返回undefined let getMemberName = document.getElementById("name").value; let getMemberInitials = findMemberIniti

我已经编写了一个函数,它应该过滤数组并返回一个与给定值关联的值。例如,通过知道一个名字,我想得到首字母

排列 功能 当我像findMemberInitials(“Ben Stiller”)一样运行数组时;它按预期返回BS

当我首先尝试从at用户输入获取值,然后通过函数运行它时,它返回undefined

let getMemberName = document.getElementById("name").value;
let getMemberInitials = findMemberInitials(getMemberName);

console.log(getMemberInitials); //returns undefined.

我不太确定我做错了什么。我尝试将其解析为字符串,但没有帮助。

您没有从函数返回任何内容。其次,您应该使用
find()

让成员=[
{
id:1,
memberFullName:“Ben Stiller”,
成员姓名首字母:“BS”
},
{
id:2,
memberFullName:“迈克尔·杰克逊”,
成员姓名首字母:“MJ”
}
];
函数findMemberInitials(对象){
return(members.find(obj=>obj.memberFullName===object)| |{});
}

log(findMemberInitials(“Michael Jackson”)
您没有从函数返回任何内容。其次,您应该使用
find()

让成员=[
{
id:1,
memberFullName:“Ben Stiller”,
成员姓名首字母:“BS”
},
{
id:2,
memberFullName:“迈克尔·杰克逊”,
成员姓名首字母:“MJ”
}
];
函数findMemberInitials(对象){
return(members.find(obj=>obj.memberFullName===object)| |{});
}

console.log(findMemberInitials(“Michael Jackson”))
findMemberInitials中没有返回值,并且您没有从函数返回任何内容,您需要从函数返回结果如果未找到任何成员,则函数将抛出错误。除了添加返回值,我会将参数名称更改为有意义的名称,因为
object
不是很有意义。FindMemberInitial中没有返回值,并且您没有从函数中返回任何内容,您需要从函数中返回结果如果未找到任何成员,您的函数将抛出错误。除了添加返回值,我会将参数名更改为有意义的名称,因为
对象
不是很有意义。返回null比返回空对象要好。@CodingYoshi
{}.memberInitials
将返回
undefined
null。memberInitials
将抛出错误。在调用
memberInitial
之前,需要检查是否找到任何内容。如果找不到任何内容,则返回null。@CodingYoshi我认为这种方法很好。返回
undefined
null
没有多大区别。返回null比返回空对象要好。@CodingYoshi
{}.memberInitials
将返回
undefined
null。memberInitials
将抛出错误。在调用
memberInitial
之前,需要检查是否找到任何内容。如果找不到任何内容,则返回null。@CodingYoshi我认为这种方法很好。返回
undefined
null
没有多大区别
function findMemberInitials(object) {
    let result = members.filter( obj => {
        return obj.memberFullName == object;
    })[0].memberInitials;
}
let getMemberName = document.getElementById("name").value;
let getMemberInitials = findMemberInitials(getMemberName);

console.log(getMemberInitials); //returns undefined.