如何使用下划线对以下数组进行排序?

How Do You Use Underscore to Sort the Following Array?

我想使用下划线通过 array1 过滤 array 并得到下面的 answer .要清楚,如果 array 中对象的 key1 中的任何元素是 array1 中句子的一部分,那么我想保留该元素在 数组 中。例如:

var array = [{key: "don't matter", key1: ["Bob doesn't", "Joe lives", "named John"]}, 
{key: "still don't matter", key1: ["Jane might", "Jill lives", "Jennifer can't"]}]

var array1 = ["Someone named Bob lives here", "Someone named Joe lives
 here", "Someone named Lisa lives here"];

var answer = [{key: "don't matter", key1: ["Bob doesn't", "Joe lives", "named John"]}];

现在我要走这条路:

var answerTest = _.filter(array, function(n){if(_.intersection(n.key1, array1))}); //this is not working though

var answerTest2 = _.filter(array, function(n){return RegExp(n.key1).test(????)})

我认为 answerTest2 是更好的方法,但我不知道从那里去哪里。

var answer = _.filter(array, function(n){
     if (_.some(n.key1, function(j){
        return _.find(array1, function(p){
            return new RegExp(j).test(p)})})) {
              return n}});

本题的目的是能够通过对象键之一的字符串值过滤对象数组,并且它与字符串数组中的元素部分匹配。据我了解,没有 RegExp 就无法完成。我认为这是 Javascript 新手理解的重要一点,特别是对于那些可能偏离正常路径执行服务器端 Javascript 使用下划线或 lodash 的人。