如何混合下划线函数以使用_.contains()的自定义比较算法?

时间:2014-04-24 03:45:02

标签: javascript underscore.js

理想情况下,我想将自定义比较函数作为第三个参数传递给_.contains(),但它只接受集合和值。

代码

我想这样做:

_.contains(['apples', 'oranges'], 'applesss', function (element, value) {
  return new RegExp(element).test(value);
});

...但我不能,那么下一个最好的东西是什么?

1 个答案:

答案 0 :(得分:7)

听起来你正在寻找_.some,如果测试通过了数组中的至少一个元素,则返回true

_.some(['apples', 'oranges'], function (element) {
  return new RegExp(element).test('applesss');
});

您可以轻松地将其包装在您自己的功能中:

function test_regexes(arr, value) {
  return _.some(arr, function (element) {
    return new RegExp(element).test(value);
  });
}

test_regexes(['apples', 'oranges'], 'applesss');