javascript hasOwnProperty()找不到属性

时间:2014-07-29 10:37:24

标签: javascript angularjs firebase

使用angularjs和firebase编写一个函数,该函数应检查是否可以在数据库中找到currentUser。现在该物业"出席"只包含一个用户,而且是#34; Peter Pan"

服务/ party.js

isAttending: function (party) {
      if (User.signedIn() && party.attendings) {
          console.log(User.getCurrent().username);   //Writes out: Peter Pan
          console.log(eve.attendings);               //Writes out: Peter Pan
          console.log(party.attendings.hasOwnProperty(
                 User.getCurrent().username);        //Writes out: false
      return party.attendings.hasOwnProperty(User.getCurrent().username);
    }
}

在创建聚会对象时存储了Peter Pan:

var Party = {
  ..
  create: function (p) {
      ...
      party.attendings = user.username;
      ...
    }
}

用户出人意料地存储在'出席'但是为什么不能找到hasOwnProperty()找到它?

1 个答案:

答案 0 :(得分:1)

我认为你错误地认为hasOwnProperty是如何工作的。

如果对象有一个属性,

hasOwnProperty将返回,在你的情况下,派对有一个属性参与,但这就是它将检查的全部,它不会检查这个属性的值是什么(在这种情况下彼得泛)。

现在,我假设您希望参加会议成为一个列表,在这种情况下您需要在列表中找到一个值,有几种方法,如果您可以使用jQuery,您可以执行以下操作:

$.inArray( User.getCurrent().username, [ party.attendings ] );

如果你不这样做,那就看看不同的选择,只需谷歌搜索在javascript中找到数组中的值。