【问题标题】:JavaScript user prompt 2d array lookup - Elf Name GeneratorJavaScript 用户提示二维数组查找 - 精灵名称生成器
【发布时间】:2022-01-09 09:20:36
【问题描述】:

从我认为的 JavaScript 单元的类活动的简单想法开始,但基于用户输入读取 JavaScript 2D 数组的最佳方法却犯了错误。

如何让它在数组的第一个索引中查找用户条目并在第二个索引中输出值?我需要在某个时候告诉它要读取哪个索引以及要输出哪个索引,通过类似于我想象的 [0][1] 的语法,但反复试验让我走得很远。

也许有更好的方法??

这是我目前所拥有的,它只输出完整的第一个数组条目 - "A","Angelic"

var firstNames = [
["A","Angelic"],
["B","Blustery"],
........
["Y","Cheery"],
["Z","Dancy"]
];
var firstInitial = window.prompt("What is the first letter of your first name: ").toUpperCase();
let elfFirstName = firstNames.find(firstSearch);
function firstSearch(firstInitial) {
    return firstInitial;
}
window.alert("Your Elf Name is " + elfFirstName);
</script>```


Thanks

【问题讨论】:

  • 所以您不是在寻找匹配项。您只需返回 find 方法传递给您的内容。
  • 你为什么不只使用一个对象? const firstNames = { A: "Angelic", B: "" ...}

标签: javascript arrays 2d user-input prompt


【解决方案1】:

您可以将带有首字母的对象作为键。

const
    firstNames = {
        A: "Angelic",
        B: "Blustery",
        Y: "Cheery",
        Z: "Dancy"
    },
    firstInitial = window.prompt("What is the first letter of your first name: ")[0].toUpperCase(),
    elfFirstName = firstNames[firstInitial];

console.log("Your Elf Name is " + elfFirstName);

【讨论】:

    【解决方案2】:

    您没有正确使用查找。它需要查看传入的数组的第一个索引。

    function firstSearch(item) {
      return item[0] === firstInitial;
    }
    

    所以

    var firstNames = [
      ["A", "Angelic"],
      ["B", "Blustery"],
      ["Y", "Cheery"],
      ["Z", "Dancy"]
    ];
    var firstInitial = window.prompt("What is the first letter of your first name: ").toUpperCase();
    const elfFirstName = firstNames.find(firstSearch)[1];
    
    function firstSearch(item) {
      return item[0] === firstInitial;
    }
    window.alert("Your Elf Name is " + elfFirstName);

    我在 cmets 中指出的更好的解决方案是使用数组

    var firstNames = {
      A: "Angelic",
      B: "Blustery",
      Y: "Cheery",
      Z: "Dancy"
    };
    var firstInitial = window.prompt("What is the first letter of your first name: ").toUpperCase();
    const elfFirstName = firstNames[firstInitial];
    window.alert("Your Elf Name is " + elfFirstName);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多