/*
	Square Circle Triangle
	Author: 	Ben Schwarz
	Purpose: 	Return a set of results from a hash filtering by any of the named keys in the array  with a regular expression
	Example of use:
	
	var MyArray = [
		{"name": "Cool", "id": 1}, 
		{"name": "Cat", "id": 2}, 
		{"name": "Important", "id": 3}, 
		{"name": "Todo", "id": 4}, 
		{"name": "Boring", "id": 5}, 
		{"name": "Calm", "id": 6}, 
		{"name": "Cats", "id": 7}, 
		{"name": "Curdle", "id": 8}, 
		{"name": "Cock", "id": 9}, 
		{"name": "Cusp", "id": 10}, 
		{"name": "Canary", "id": 11}, 
		{"name": "Cameria", "id": 12}, 
		{"name": "Crazy", "id": 13}, 
		{"name": "Zinc", "id": 14}, 
		{"name": "Breakfast", "id": 15}
	]

	MyArray = MyArray.findByKeyExpPair({name:/^C/});
	MyArray = MyArray.findByKeyExpPair({id:/^1/});
	console.debug(MyArray); // => [{"name": "Cool", "id": 1}, {"name": "Cusp", "id": 10}, {"name": "Canary", "id": 11}, {"name": "Cameria", "id": 12}, {"name": "Crazy", "id": 13}]
	
*/

findByKeyExpPair = function (arr, pairs) {
	// Array to return
	var myArray = [];
	// Loop though array
	for (var i = 0; i < arr.length; i++) {
		for (var key in pairs) {
			// Push matching key / value rows into the array to be returned
			if (pairs[key].test(arr[i][key])) {
				myArray.push(arr[i]);
			}
		}
	}
	// Return reduced array
	return myArray;
};
