我有一个结构如下的数组:

$scope.roomlist = [
    {"roomid":"1", "tablecount":"10", "chaircount":"20", "whiteboards":"2"},
    {"roomid":"2", "tablecount":"15", "chaircount":"30", "whiteboards":"2"},
    {"roomid":"3", "tablecount":"10", "chaircount":"20"}];


数组值是动态的,并且通过连接某些表来生成数组。白板是roomlist返回的所有房间中可能存在的元素之一,如上所示可能在某些房间中存在,或者根本没有一个房间。

我需要做的就是测试以查看列表中是否至少有一个包含白板对象的房间。

我已经尝试过indexOf测试,但是它返回-1。

我执行的代码是

var myrooms = $scope.roomlist;
var results = myrooms.indexOf("whiteboards");


接着

console.log(results);


有什么建议?

最佳答案

您需要一个接一个的迭代,然后检查是否存在。

function searchRoomsFor(objectName, roomList) {
  var found = false;
  for (var roomIndex in roomList) {
    var room = roomList[roomIndex];
    if (objectName in room) {
      found = true;
    }
  }
  return found;
}

// Check for an object
console.log(searchRoomsFor('whiteboards', $scope.roomlist));

09-30 16:08