【问题标题】:Stuck on a javascript function for my game [duplicate]卡在我的游戏的 javascript 函数上 [重复]
【发布时间】:2018-01-08 16:11:18
【问题描述】:

所以我正在创建一个函数来接受两个参数,

  1. 第一个参数是人名
  2. 第二个是他们已经捐赠了多少。

每个人都被分配到一个数组中,具体取决于他们期望捐赠多少。变量中的人

  • 一个预计捐6个,
  • b 应该捐出 5 和
  • c 捐赠 4 个。

我希望该函数返回个人应该进行多少捐赠,但问题是:无论我在控制台日志中输入什么名称,它始终假定此人来自 var a。我错过了什么吗?

function findDonationRequirement(name, num){

var a = ["shad0vvfax","DarthPolekat","TheSchwartz",
"Johnnie SR91","Brodie", "HolyPaladin", "Kraven", "Dan Solo",
"Khorathian812", "KingWilliam"];

var b = ["Infantry0223","Ru Baruba Maral","Gray JediTim", "Moof Milker",
"Andain", "Cori Starfire", "Nassyy", "Roylas Trebla", "DarthPapirrin",
"MaximusGiganticus", "Wardai", "George3PO", "Revan2017", "Ravishing Dirk",
"dowi", "dogamidstwind", "SpinelessAce", "Devilscut88", "Dagez",
"The Buckster", "ddpf", "WoollyLemurToes", "Emeralthys Phantom  2060095",
"Lightnara1", "JoLy NYC",   "Ccube19", "Anectet Heat", "BigBadBoneDaddy",
"Grizzy", "Zanzibar", "Jesse", "BhMojo", "Kuu Raama", "Jay Fury", "N8Dog",
"Whiskytangofoxtrot"];

var c = ["KingofG0nd0r", "Chrome Cobra", "Bad Rongo", "TK421"];

if (a.hasOwnProperty(name)) {return 6 - num}

else if (b.hasOwnProperty(name)) {return 5 - num}

else if (c.hasOwnProperty(name)) {return 4 - num}

else "Not on list";}

console.log(findDonationRequirement("KingofG0nd0r", 3));

【问题讨论】:

  • hasOwnProperty 不会在数组中找到元素 - 只有在搜索对象时才应该使用它。
  • 出于好奇:这些名字来自哪里? :) 还有a.includes(name) ...
  • 在使用方法之前,您应该认真阅读有关方法的文档
  • 它们来自电子游戏 :)

标签: javascript arrays function hasownproperty


【解决方案1】:

a.indexOf(name) > 0代替a.hasOwnProperty(name)

hasOwnProperty 是一个 Object 方法,用于查找名称为 name 的属性

indexOf 是一种 Array 方法,用于在 Array 中查找文字或对象的位置。如果没有找到它,它会返回-1。因此,使用它的值来确定它是否存在于 a 数组中。

更多关于indexOf这里https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

【讨论】:

    【解决方案2】:

    你应该使用 indexOf()

    function findDonationRequirement(name, num) {
    
      var a = ["shad0vvfax", "DarthPolekat", "TheSchwartz",
        "Johnnie SR91", "Brodie", "HolyPaladin", "Kraven", "Dan Solo",
        "Khorathian812", "KingWilliam"
      ];
    
      var b = ["Infantry0223", "Ru Baruba Maral", "Gray JediTim", "Moof Milker",
        "Andain", "Cori Starfire", "Nassyy", "Roylas Trebla", "DarthPapirrin",
        "MaximusGiganticus", "Wardai", "George3PO", "Revan2017", "Ravishing Dirk",
        "dowi", "dogamidstwind", "SpinelessAce", "Devilscut88", "Dagez",
        "The Buckster", "ddpf", "WoollyLemurToes", "Emeralthys Phantom  2060095",
        "Lightnara1", "JoLy NYC", "Ccube19", "Anectet Heat", "BigBadBoneDaddy",
        "Grizzy", "Zanzibar", "Jesse", "BhMojo", "Kuu Raama", "Jay Fury", "N8Dog",
        "Whiskytangofoxtrot"
      ];
    
      var c = ["KingofG0nd0r", "Chrome Cobra", "Bad Rongo", "TK421"];
    
      if (a.indexOf(name)>-1) {
        return 6 - num
      } else if (b.indexOf(name)>-1) {
        return 5 - num
      } else if (c.indexOf(name)>-1) {
        return 4 - num
      } else {
        return "Not on list";
      }
    }
    
    console.log(findDonationRequirement("Ccube19", 3));
    console.log(findDonationRequirement("Chrome bra", 3));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 2022-10-18
      相关资源
      最近更新 更多