The main objective is to filter duplicate items from an array by any given property. The solution I'm trying to use is in js @ <https://stackoverflow.com/a/31194441/618220>

I tried to implement it in coffeescript. It is all good, except the scoping of the functions. I don't want **\_indexOfProperty** function to be called from outside - since it is useless in all other contexts. But if I make it *private* (by removing @ in declaration), I cannot call it from within ***inputArray.reduce***

My coffee code looks like this:

```
Utils = ->
    @filterItemsByProperty= (inputArray,property)=>
        if not _.isArray inputArray
            return inputArray
        r = inputArray.reduce(((a,b,c,d,e)=>
                if @._indexOfProperty(a,b,property) < 0
                    a.push(b)
                a
            ),[])
        r

    @_indexOfProperty= (a,b,prop) ->
        i = 0
        while i< a.length
            if a[i][prop] == b[prop]
                return i
            i++
        -1

    return

window.utils = Utils

```

here's how I invoke it from other places:

```
App.utils.filterItemsByProperty(personArray,"name")

```

And right now, anyone can do this as well:

```
App.utils._indexOfProperty(1,2,3)

```

How to modify the coffee to stop this ?