javascript - 通过 DOM 获取值,然后过滤数组以获取该值返回未定义

标签 javascript

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

数组

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/

相关文章:

javascript - Javascript/node.js 中的异步循环

javascript - 如何使用 Protractor 定位器定位子元素?

javascript - jQuery DOM 遍历

javascript - 在运行时更改折线图的域

javascript - 使用异步存储可以存储大量数据吗? [ react native ]

javascript - 为什么 Bootstrap4 模式不显示我的 Django 模板中的数据?

javascript - MySQL 的时间验证范围

javascript - 当 Promise 被拒绝时,Promise 链顺序有什么关系?

javascript - JQuery 保存和读取 $.cookie 存储对象

javascript - 在nodejs服务器中提供html文件