Javascript检查对象是否具有某个属性值

时间:2014-11-24 22:55:17

标签: javascript node.js object

{
  "firstRoom": [
    {
      "name": "A",
      "age": 21
    },
    {
      "name": "B",
      "age": 31
    },
    {
      "name": "C",
      "age": 41
    }
  ],
  "secondRoom": [
    {
      "name": "FF",
      "age": 21
    },
    {
      "name": "GG",
      "age": 31
    }
  ]
}

如何检查我的对象以查看数组secondRoom是否具有name为“{”的属性value

我试过这样:

if("secondRoom" in rooms){

    if("FF" in rooms.secondRoom.name){
        alert('yap');
                       }else{
                       alert('nop');
                       }

}else{
    alert('no room today');
}

它不起作用

1 个答案:

答案 0 :(得分:1)

你可以尝试

var b = rooms.secondRoom && rooms.secondRoom.some(function(obj) {
    return obj.name === "FF";
});
alert(b ? 'yap' : 'nop');

或者,如果您想确定这些属性是自己的属性而不是继承属性,

var b = rooms.hasOwnProperty("secondRoom") && rooms.secondRoom.some(function(obj) {
    return obj.hasOwnProperty("name") && obj.name==="FF";
});
alert(b ? 'yap' : 'nop');