【问题标题】:Search function problems in JavascriptJavascript中的搜索功能问题
【发布时间】:2023-03-05 19:13:01
【问题描述】:

我对编码很陌生,但我在 freecodecamp 上完成了很多工作,并制作了一些我在 mozilla.developer 上学到的简单猜谜游戏。 我正在使用 VisualStudioCode 并练习。 问题:我想在 input="text" 字段中写一个名字,提交它,然后段落标签应该记录输入名字的姓氏。我在我的网页中创建了两个对象作为用户。我已经足够让控制台在参数中记录名称,但是.. 如我所见,函数 findPerson(name) 参数必须由 inputField 使用。 我该怎么做呢?这是我的代码。

<html>
<div class="form">
        <label for="inputField"> Enter a users first name, and see their last name. </label>
        <input type="text" class="inputField" id="inputField" placeholder="Enter search here">
        <input type="submit" class="submitBtn" id="submitBtn" value="Search">
    </div>
    <p class="searchResult">Last name will be shown here.</p>
</html>
<script>
const people = [
{
    firstName: "Arnold",
    lastName: "Schwarzenegger",
    hobbies: ["Get pumped", "be awesome"],
},
{
    firstName: "Clint",
    lastName: "Eastwood",
    hobbies: ["Make movies", "not being Arnold"],
},
];

const btn = document.querySelector(".submitBtn");
const inputF = document.querySelector(".inputField");
const para = document.querySelector(".searchResult");

function findPerson(name) {
    let word = String(inputF.value);
    word = name;
    for(var i = 0; i < people.length; i++) {
        if(people[i].firstName == name) {
            para.textContent = people[i].lastName;
            return people[i].lastName;
        }
        else {
            para.textContent = "Not found";
        }
    }
};

btn.addEventListener("click", findPerson);
</script>

【问题讨论】:

    标签: javascript object search


    【解决方案1】:

    您正在做的是您的findPerson 函数将name 作为参数。

    function findPerson(name)
    

    但是,该名称参数不是文本框的值..

    然后在下一行你得到文本框的值,你称之为'word'

    let word = String(inputF.value);
    

    但是在下一行中,您再次用 name 变量覆盖该 word 变量。

    word = name;
    

    然后你用 name 变量检查所有人的名字,但如上所述,这不是文本字段的值。

    所以,不要为函数使用参数。并通过执行以下操作使 name 成为文本框的值:

    function findPerson() {
        let name = String(inputF.value);
        ....
    }
    

    然后它就会起作用。

    【讨论】:

    • 谢谢,现在可以了。但是,如果我要使用构造函数制作对象。那么我如何让用户能够搜索对象道具呢?例如: function Person(name, lastName) { this.name = name; this.lastName = 姓氏; }; let Luer = new Person("Luer", "Chiti");
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 2015-04-06
    相关资源
    最近更新 更多