【问题标题】:Compare values of object JavaScript比较对象 JavaScript 的值
【发布时间】:2020-09-05 21:34:57
【问题描述】:

我在 JS 中有一个这样的对象:

var getToDoValue = document.getElementById("toDoInput").value;
var nameOfTeamMember = "Tobias";


var person = new Object();

person.task = "Task: " + getToDoValue;
person.member = "Member: " + nameOfTeamMember;

但是当我尝试在 if 语句中输入“nameOfTeamMember”的值时出现问题:

var mem = person.member;

if (mem == "Tobias") {

    console.log("works");
  }

这不起作用。但是当我只是在 if 语句之外使用 console.log "var mem" 时,它给了我 "Member: Tobias"。有什么建议么?我对 JS 还是有点陌生​​,所以通过比较可以发现一些问题

【问题讨论】:

  • 它应该是:if (mem == 'Member: Tobias') 作为你输入的值 person.member 不仅仅是名字...你已经输入了 "Member:" + nameOfTeamMember ;
  • 同样的结果。我已经试过了。但是,我想出了一个解决方案:我使用了 .includes("Tobias")。不过说实话,不确定有什么区别。其他比较也应该有效。
  • 当然可以,因为你不能指望 'Tobias' == 'Member: Tobias' 为真,而 'Member: Tobias'.includes('Tobias') 为真
  • 当我使用 "Member: Tobias" == "Member: Tobias" 时由于某种原因是错误的。
  • 你能发布你的整个代码吗?

标签: javascript if-statement compare


【解决方案1】:

您的代码的问题是 person.member 中的值是“Member: Tobias”,正如您从 console.log 的结果中指出的那样,这是您连接以下代码行的结果带有字符串“成员:”的名称并将其分配给成员属性。

person.member = "成员:" + nameOfTeamMember;

您可以用来进行比较的一个选项是:

if (mem.contains("Tobias", 8) {

console.log("works");

} 8 是因此您的搜索在冒号 (:) 之后开始,因此您不包括“成员:”,只是它后面的内容,即实际的成员名称。

【讨论】:

  • 字符串没有'contains'方法...它被称为包含,您不需要指定起点
猜你喜欢
  • 1970-01-01
  • 2014-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 2016-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多