如何使用Underscore更好地简化以下操作?对于非常简单的事情来说感觉太多了。它从对象键创建一个正则表达式。
var obj = {
'dog' : 1,
'cat' : 1,
'rat' : 1
};
var arr = [], regex;
_.each( obj, function( value, index ){
arr.push( index );
});
regex = _.reduce( arr, function(){
return new RegExp( arr.join('|'), 'i' );
});
// console.log( regex ) should output:
/dog|cat|rat/i
答案 0 :(得分:1)
只需使用Object.keys
和本地Array.prototype.join
,就像这样
console.log(new RegExp(Object.keys(obj).join("|"), "i"));
使用_
,它将是_.keys
console.log(new RegExp(_.keys(obj).join("|"), "i"));
结果将是
/dog|cat|rat/i
答案 1 :(得分:0)
我很快意识到你不需要使用下划线。
var regex = new RegExp( Object.keys( obj ).join('|'), 'i' );