我有一个对象数组,需要查看其中是否存在某个键。这就是我现在正在做的事情:
exports.rsaPublicKeyPem = (modulusB64, exponentB64) => {
const modulus = new Buffer(modulusB64, 'base64');
const exponent = new Buffer(exponentB64, 'base64');
const modulusHex = prepadSigned(modulus.toString('hex'));
const exponentHex = prepadSigned(exponent.toString('hex'));
const modlen = modulusHex.length / 2;
const explen = exponentHex.length / 2;
const encodedModlen = encodeLengthHex(modlen);
const encodedExplen = encodeLengthHex(explen);
const encodedPubkey = `30${encodeLengthHex(
modlen +
explen +
encodedModlen.length / 2 +
encodedExplen.length / 2 + 2
)}02${encodedModlen}${modulusHex}02${encodedExplen}${exponentHex}`;
const derB64 = new Buffer(encodedPubkey,'hex').toString('base64');
const pem = `-----BEGIN RSA PUBLIC KEY-----\n${derB64.match(/.{1,64}/g).join('\n')}\n-----END RSA PUBLIC KEY-----\n`;
return pem;
};
有没有更好/更可接受的方式来做到这一点?
答案 0 :(得分:4)
const arr = [{ id: 1, foo: 'bar' }, { id: 2 }]
var result = arr.some((value, index) => {
return value.hasOwnProperty('bar')
});
console.log(result);
答案 1 :(得分:2)
我使用 Array.prototype.some()
功能:
const arr = [
{ id: 1, foo: 'bar' },
{ id: 2 }
];
var result = arr.some(e => e.hasOwnProperty('foo'));
console.log("The array contains an object with a 'foo' property: " + result);
var result = arr.some(e => e.hasOwnProperty('baz'));
console.log("The array contains an object with a 'baz' property: " + result);
答案 2 :(得分:1)
如果您只想要一个true / false来确定元素是否在那里,请使用'some'。它返回true / false。
const arr = [{ id: 1, foo: 'bar' }, { id: 2 }];
var key = 'foo';
var isInArray= arr.some(function(val, i) {
return val[i][key];
});
答案 3 :(得分:1)
您可以使用Array#some
var arr = [{ id: 1, foo: 'bar' }, { id: 2 }]
result = arr.some(o => 'foo' in o)
console.log(result)
every()
和some()
它将检查所有对象上是否存在给定键,如果并非所有键都具有此键,则返回false。
它将检查至少一个对象是否具有该密钥,如果有,则返回true。
答案 4 :(得分:0)
您可以使用Array#some
var arr = [{ id: 1, foo: 'bar' }, { id: 2 }],
result = arr.some(o => 'foo' in o);
console.log(result);