UNPKG

1.41 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 replaceIndex: (idx, val) ->
25 if idx <= @length
26 @splice idx, 1, val
27 return @
28
29 replace: (val, newval) ->
30 if @contains val
31 @splice @indexOf(val), 1, newval
32 return @
33
34 replaceAll: (val, newval) ->
35 for x in @
36 if x is val
37 @replaceIndex _i, newval
38 return @
39
40 clear: -> @length = 0; @
41
42 clone: -> x for x in @
43
44 merge: (val) ->
45 for x in val
46 @push x
47 return @
48
49 intersect: (val) -> x for x in @unique() when x in val
50
51 contains: (val) -> @indexOf(val) > -1
52
53 unique: -> x for x in @ when !_results.contains x
54 compact: -> x for x in @ when x?
55 flatten: ->
56 array = []
57 for x in @
58 if x? and Object.isArray x
59 array.merge x.flatten()
60 else
61 array.push x
62 return array
63
64 size: -> @length
65 first: -> @[0]
66 last:-> @[@length-1]
67
68for key of module.exports
69 Object.defineProperty Array.prototype, key, value: module.exports[key]