Underscore.js - 使用regexp查找对象键的值?

时间:2012-10-24 19:58:57

标签: javascript underscore.js

我得到一个如下所示的对象数组:

var collection = [
  {
    name: 'hello',
    color: 'blue'
  },
  {
    name: 'world',
    color: 'brown'
  }, .... {thousands more}
];

使用下划线找出数组中任何的对象是否具有“name”键的值等于某个正则表达式的正确方法是什么?

_.contains(collection, '/goodbye/i'); <-- this won't work ->

如何告诉它使用'name'键进行搜索?

1 个答案:

答案 0 :(得分:11)

你可以这样做:

filter = function (collection, key, regex) {
    return _.filter(collection, function(obj){ return obj[key].match(regex);});
};