制作嵌套对象数组并检查对象中是否存在键
making nested objects array and checking if the key exists in objs
我正在尝试检查键是否存在于对象数组中。每次将现有密钥传递给我的函数时,我都会得到 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'));
有什么问题吗?
connect_clients[i].key
指的是实际的 属性 命名为 key
,而不是对象的键。
对于这种情况,您可以使用 Object.keys
to get an array of keys of an object and use Array.prototype.some
来确保至少一个对象具有密钥。例如,
function lookup(name) {
return connect_clients.some(function(client) {
return Object.keys(client).indexOf(name) !== -1;
});
}
使用 Object.keys() 获取对象的键。
var val = 'val';
var connect_clients = [];
connect_clients.push({
'a': val
});
function lookup(keyName) {
var i;
for ( i = 0; i < connect_clients.length; i++) {
var keys = Object.keys(connect_clients[i]);
if(keys.indexOf(keyName) !== -1) {
return true;
}
}
return false;
}
console.log(lookup('a'));
我正在尝试检查键是否存在于对象数组中。每次将现有密钥传递给我的函数时,我都会得到 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'));
有什么问题吗?
connect_clients[i].key
指的是实际的 属性 命名为 key
,而不是对象的键。
对于这种情况,您可以使用 Object.keys
to get an array of keys of an object and use Array.prototype.some
来确保至少一个对象具有密钥。例如,
function lookup(name) {
return connect_clients.some(function(client) {
return Object.keys(client).indexOf(name) !== -1;
});
}
使用 Object.keys() 获取对象的键。
var val = 'val';
var connect_clients = [];
connect_clients.push({
'a': val
});
function lookup(keyName) {
var i;
for ( i = 0; i < connect_clients.length; i++) {
var keys = Object.keys(connect_clients[i]);
if(keys.indexOf(keyName) !== -1) {
return true;
}
}
return false;
}
console.log(lookup('a'));