我有一个关联数组,如果有一个以字母" r"结尾的键,我想在数组中搜索。 当我使用" in"静态字符串的javascript关键字,但不是动态的,使用正则表达式。
答案 0 :(得分:0)
Object.keys(obj)
将对象的键作为数组获取。因为它是一个数组,你可以使用Array.prototype.filter
来选择你感兴趣的键:
keysEndingWithR =
Object
.keys(obj)
.filter(function (key) {
return /r$/.test(key);
});
答案 1 :(得分:0)
迭代对象的属性,如果表达式匹配则迭代每个测试。如果有,请返回属性名称。
function getMatchingPropertyName(expression, object)
for (var property in object) {
if (object.hasOwnProperty(property)) {
if (expression.test(property)) {
return property
}
}
}
return null;
}
或者如果您想要所有匹配的属性名称:
function getMatchingPropertyNames(expression, object)
var result = [];
for (var property in object) {
if (object.hasOwnProperty(property)) {
if (expression.test(property)) {
result.push(property);
}
}
}
return result;
}
答案 2 :(得分:-1)
如果脏的快速测试足够,你可以尝试类似的东西:
/r":/.test(JSON.stringify(obj));
此外zzzzBov功能解决方案也可以与Array.prototype.some()一起使用
Object.keys(obj).some(function (key) {
return /r$/.test(key);
});