UNPKG

1.08 kBtext/coffeescriptView Raw
1module.exports =
2 remove: (val) ->
3 if @contains val
4 @splice @indexOf(val), 1
5 return @
6
7 removeIndex: (idx) ->
8 if idx <= @length
9 @splice idx, 1
10 return @
11
12 removeAll: (val) ->
13 for x in @
14 if x is val
15 @removeIndex _i
16 return @
17
18 removeAllIgnoreCase: (val) ->
19 for x in @
20 if String(x).toLowerCase() is String(val).toLowerCase()
21 @removeIndex _i
22 return @
23
24 clear: -> @length = 0; @
25
26 clone: -> x for x in @
27
28 merge: (val) ->
29 for x in val
30 @push x
31 return @
32
33 intersect: (val) -> x for x in @unique() when x in val
34
35 contains: (val) -> @indexOf(val) > -1
36
37 unique: -> x for x in @ when !_results.contains x
38 compact: -> x for x in @ when x?
39 flatten: ->
40 array = []
41 for x in @
42 if x? and Object.isArray x
43 array.merge x.flatten()
44 else
45 array.push x
46 return array
47
48 size: -> @length
49 first: -> @[0]
50 last:-> @[@length-1]
51
52for key of module.exports
53 Object.defineProperty Array.prototype, key, value: module.exports[key]