filter

by kazu69

CoffeeScript

filter = (object, iterator) ->
  result = []
  if object.filter
    result = object.filter iterator, object
  else
    for key, value of object
      result.push value if iterator.call object.key, value, key 
  result
            
#########################

object = [
  { seen: false }
  { seen: true }
]

object =
  0: { seen: false }
  1: { seen: true }

iterator = (value, key) ->
  return @ if value.seen is true

result = filter object, iterator

console.log result