@@ -24,20 +24,26 @@ const addNumbers = function(numbers){
24
24
return numbers . reduce ( sum , 0 ) ;
25
25
}
26
26
27
+ const unshift = function ( list , elementToUnshift ) {
28
+ list . unshift ( elementToUnshift ) ;
29
+ return list ;
30
+ }
31
+
27
32
// Reverse the order of an array
28
33
const reverse = function ( source ) {
29
- let reversed = source . reduce ( function ( result , element ) {
30
- result . unshift ( element ) ;
31
- return result ;
32
- } , [ ] ) ;
34
+ let reversed = source . reduce ( unshift , [ ] ) ;
33
35
return reversed ;
34
36
}
35
37
36
38
// Extract every second element from an array
37
39
const extractAlternatingElements = function ( elements ) {
38
- return elements . filter ( function ( e , index ) {
39
- return index % 2 == 0 ;
40
- } ) ;
40
+ let result = [ ] ;
41
+ for ( let index = 0 ; index < elements . length ; index ++ ) {
42
+ if ( index % 2 == 0 ) {
43
+ result . push ( elements [ index ] ) ;
44
+ }
45
+ }
46
+ return result ;
41
47
}
42
48
43
49
// Create fibonacci series upto given limit
@@ -157,47 +163,53 @@ const isInAscendingOrder = function(list){
157
163
return isInSpecificOrder ( list , isGreater ) ;
158
164
}
159
165
166
+ const convertToNumber = function ( string ) {
167
+ return + string ;
168
+ }
169
+
160
170
// Extract digits of a number into an array
161
171
const extractDigits = function ( number ) {
162
172
let digits = number . toString ( ) . split ( "" ) ;
163
- return digits . map ( function ( element ) { return + element ; } ) ;
173
+ return digits . map ( convertToNumber ) ;
164
174
}
165
175
166
176
// Get all unique elements from an array
167
177
168
178
const unique = function ( list ) {
169
179
let result = [ ] ;
170
- list . forEach ( function ( element ) {
180
+ for ( let element of list ) {
171
181
let isAlreadyPresent = result . includes ( element ) ;
172
182
if ( ! isAlreadyPresent ) {
173
183
result . push ( element ) ;
174
184
}
175
- } ) ;
185
+ }
176
186
return result ;
177
187
}
178
188
179
189
// get Union set for two given sets
180
190
const union = function ( firstSet , secondSet ) {
181
191
let unionSet = firstSet . slice ( ) ;
182
- secondSet . forEach ( function ( element ) {
192
+ for ( let element of secondSet ) {
183
193
unionSet . push ( element ) ;
184
- } ) ;
194
+ } ;
185
195
return unique ( unionSet ) ;
186
196
}
187
197
188
198
//get Intersection set of two sets
189
199
const getIntersection = function ( firstSet , secondSet ) {
190
- let intersectionSet = firstSet . filter ( function ( element ) {
200
+ const isAlreadyPresent = function ( element ) {
191
201
return secondSet . includes ( element ) ;
192
- } ) ;
202
+ }
203
+ let intersectionSet = firstSet . filter ( isAlreadyPresent ) ;
193
204
return unique ( intersectionSet ) ;
194
205
}
195
206
196
207
//get Difference of two sets
197
208
const getDifference = function ( firstSet , secondSet ) {
198
- let differenceSet = firstSet . filter ( function ( element ) {
209
+ const isNotAlreadyPresent = function ( element ) {
199
210
return ! secondSet . includes ( element ) ;
200
- } ) ;
211
+ }
212
+ let differenceSet = firstSet . filter ( isNotAlreadyPresent ) ;
201
213
return unique ( differenceSet ) ;
202
214
}
203
215
0 commit comments