Javascript - 使用正则表达式检查某个数组键是否存在

时间:2016-07-06 14:44:49

标签: javascript arrays regex

我有一个关联数组,如果有一个以字母" r"结尾的键,我想在数组中搜索。 当我使用" in"静态字符串的javascript关键字,但不是动态的,使用正则表达式。

3 个答案:

答案 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);
});