// TIP: Try re-using reduce() here. var test = true; if (iterator === undefined) { for (var key in collection) { if (! collection[key] && test) { return false; } } } else { for (var key in collection) { if (! iterator(collection[key]) ) { return false; } } } return test;