制作嵌套对象数组并检查objs中是否存在该键

时间:2015-11-27 07:44:36

标签: javascript node.js javascript-objects

我正在尝试检查键是否在对象数组中退出。每当我将现有密钥传递给我的函数时,我都会得到false

var connect_clients = [];
connect_clients.push({
  'a': val
});

function lookup(name) {
  for (var i = 0, len = connect_clients.length; i < len; i++) {
    if (connect_clients[i].key === name)
      return true;
  }
  return false;
}

console.log(lookup('a'));

有什么不对吗?

2 个答案:

答案 0 :(得分:1)

connect_clients[i].key指的是名为key的实际属性,而不是对象的键。

对于这种情况,您可以使用Object.keys获取对象的键数组,并使用Array.prototype.some确保至少有一个对象具有该键。例如,

function lookup(name) {
  return connect_clients.some(function(client) {
    return Object.keys(client).indexOf(name) !== -1;
  });
}

答案 1 :(得分:0)

使用Object.keys()获取对象的键。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test"></div>