Skip to content
This repository was archived by the owner on Nov 7, 2020. It is now read-only.

Commit fb5e3ae

Browse files
Merge pull request #35 from rmurphey/refactor
update solutions to match new exports pattern after removing require
2 parents 0de3fff + 42d212b commit fb5e3ae

File tree

13 files changed

+419
-477
lines changed

13 files changed

+419
-477
lines changed

app/arrays.js

Lines changed: 106 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,135 +1,133 @@
1-
if (typeof define !== 'function') { var define = require('amdefine')(module); }
2-
3-
define(function() {
4-
return {
5-
indexOf : function(arr, item) {
6-
/*
7-
if (Array.prototype.indexOf) { return arr.indexOf(item); }
8-
*/
9-
10-
for (var i = 0, len = arr.length; i < len; i++) {
11-
if (arr[i] === item) {
12-
return i;
13-
}
1+
exports = (typeof window === 'undefined') ? global : window;
2+
3+
exports.arraysAnswers = {
4+
indexOf : function(arr, item) {
5+
/*
6+
if (Array.prototype.indexOf) { return arr.indexOf(item); }
7+
*/
8+
9+
for (var i = 0, len = arr.length; i < len; i++) {
10+
if (arr[i] === item) {
11+
return i;
1412
}
13+
}
1514

16-
return -1;
17-
},
15+
return -1;
16+
},
1817

19-
sum : function(arr) {
20-
var sum = 0;
18+
sum : function(arr) {
19+
var sum = 0;
2120

22-
for (var i = 0, len = arr.length; i < len; i++) {
23-
sum += arr[i];
24-
}
21+
for (var i = 0, len = arr.length; i < len; i++) {
22+
sum += arr[i];
23+
}
2524

26-
return sum;
27-
},
25+
return sum;
26+
},
2827

29-
remove : function(arr, item) {
30-
var ret = [];
28+
remove : function(arr, item) {
29+
var ret = [];
3130

32-
for (var i = 0, len = arr.length; i < len; i++) {
33-
if (arr[i] !== item) {
34-
ret.push(arr[i]);
35-
}
31+
for (var i = 0, len = arr.length; i < len; i++) {
32+
if (arr[i] !== item) {
33+
ret.push(arr[i]);
3634
}
35+
}
3736

38-
return ret;
39-
},
37+
return ret;
38+
},
4039

41-
removeWithoutCopy : function(arr, item) {
42-
var i, len;
40+
removeWithoutCopy : function(arr, item) {
41+
var i, len;
4342

44-
for (i = 0, len = arr.length; i < len; i++) {
45-
if (arr[i] === item) {
46-
arr.splice(i, 1);
47-
i = i - 1;
48-
len = len - 1;
49-
}
43+
for (i = 0, len = arr.length; i < len; i++) {
44+
if (arr[i] === item) {
45+
arr.splice(i, 1);
46+
i = i - 1;
47+
len = len - 1;
5048
}
49+
}
5150

52-
return arr;
53-
},
54-
55-
append : function(arr, item) {
56-
arr.push(item);
57-
return arr;
58-
},
59-
60-
truncate : function(arr) {
61-
arr.pop();
62-
return arr;
63-
},
64-
65-
prepend : function(arr, item) {
66-
arr.unshift(item);
67-
return arr;
68-
},
69-
70-
curtail : function(arr) {
71-
arr.shift(arr);
72-
return arr;
73-
},
74-
75-
concat : function(arr1, arr2) {
76-
return arr1.concat(arr2);
77-
},
78-
79-
insert : function(arr, item, index) {
80-
arr.splice(index, 0, item);
81-
return arr;
82-
},
83-
84-
count : function(arr, item) {
85-
var count = 0;
86-
87-
for (var i = 0, len = arr.length; i < len; i++) {
88-
if (arr[i] === item) {
89-
count++;
90-
}
91-
}
51+
return arr;
52+
},
9253

93-
return count;
94-
},
54+
append : function(arr, item) {
55+
arr.push(item);
56+
return arr;
57+
},
9558

96-
duplicates : function(arr) {
97-
var seen = {};
98-
var dupes = [];
59+
truncate : function(arr) {
60+
arr.pop();
61+
return arr;
62+
},
9963

100-
for (var i = 0, len = arr.length; i < len; i++) {
101-
seen[arr[i]] = seen[arr[i]] ? seen[arr[i]] + 1 : 1;
102-
}
64+
prepend : function(arr, item) {
65+
arr.unshift(item);
66+
return arr;
67+
},
10368

104-
for (var item in seen) {
105-
if (seen.hasOwnProperty(item) && seen[item] > 1) {
106-
dupes.push(item);
107-
}
108-
}
69+
curtail : function(arr) {
70+
arr.shift(arr);
71+
return arr;
72+
},
73+
74+
concat : function(arr1, arr2) {
75+
return arr1.concat(arr2);
76+
},
10977

110-
return dupes;
111-
},
78+
insert : function(arr, item, index) {
79+
arr.splice(index, 0, item);
80+
return arr;
81+
},
11282

113-
square : function(arr) {
114-
var ret = [];
83+
count : function(arr, item) {
84+
var count = 0;
11585

116-
for (var i = 0, len = arr.length; i < len; i++) {
117-
ret.push(arr[i] * arr[i]);
86+
for (var i = 0, len = arr.length; i < len; i++) {
87+
if (arr[i] === item) {
88+
count++;
11889
}
90+
}
11991

120-
return ret;
121-
},
92+
return count;
93+
},
12294

123-
findAllOccurrences : function(arr, target) {
124-
var ret = [];
95+
duplicates : function(arr) {
96+
var seen = {};
97+
var dupes = [];
12598

126-
for (var i = 0, len = arr.length; i < len; i++) {
127-
if (arr[i] === target) {
128-
ret.push(i);
129-
}
99+
for (var i = 0, len = arr.length; i < len; i++) {
100+
seen[arr[i]] = seen[arr[i]] ? seen[arr[i]] + 1 : 1;
101+
}
102+
103+
for (var item in seen) {
104+
if (seen.hasOwnProperty(item) && seen[item] > 1) {
105+
dupes.push(item);
130106
}
107+
}
131108

132-
return ret;
109+
return dupes;
110+
},
111+
112+
square : function(arr) {
113+
var ret = [];
114+
115+
for (var i = 0, len = arr.length; i < len; i++) {
116+
ret.push(arr[i] * arr[i]);
133117
}
134-
};
135-
});
118+
119+
return ret;
120+
},
121+
122+
findAllOccurrences : function(arr, target) {
123+
var ret = [];
124+
125+
for (var i = 0, len = arr.length; i < len; i++) {
126+
if (arr[i] === target) {
127+
ret.push(i);
128+
}
129+
}
130+
131+
return ret;
132+
}
133+
};

app/async.js

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,24 @@
1-
if (typeof define !== 'function') { var define = require('amdefine')(module); }
1+
exports = (typeof window === 'undefined') ? global : window;
22

3-
define([ 'jquery' ], function($) {
4-
return {
5-
async : function(value) {
6-
var dfd = $.Deferred();
7-
setTimeout(function() {
8-
dfd.resolve(value);
9-
}, 10);
10-
return dfd.promise();
11-
},
3+
exports.asyncAnswers = {
4+
async : function(value) {
5+
var dfd = $.Deferred();
6+
setTimeout(function() {
7+
dfd.resolve(value);
8+
}, 10);
9+
return dfd.promise();
10+
},
1211

13-
manipulateRemoteData : function(url) {
14-
var dfd = $.Deferred();
12+
manipulateRemoteData : function(url) {
13+
var dfd = $.Deferred();
1514

16-
$.ajax(url).then(function(resp) {
17-
var people = $.map(resp.people, function(person) {
18-
return person.name;
19-
});
20-
dfd.resolve(people.sort());
15+
$.ajax(url).then(function(resp) {
16+
var people = $.map(resp.people, function(person) {
17+
return person.name;
2118
});
19+
dfd.resolve(people.sort());
20+
});
2221

23-
return dfd.promise();
24-
}
25-
};
26-
});
22+
return dfd.promise();
23+
}
24+
};

app/bestPractices.js

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,37 @@
1-
if (typeof define !== 'function') { var define = require('amdefine')(module); }
1+
exports = (typeof window === 'undefined') ? global : window;
22

33
/**
44
* This file defines an object with some methods. Some of these methods are
55
* populated incorrectly; your job is to fix them. Other methods are not
66
* populated at all; your job is to fill them out.
77
*/
8-
define(function() {
9-
return {
8+
exports.bestPracticesAnswers = {
109

11-
globals : function() {
12-
var myObject = {
13-
name : 'Jory'
14-
};
10+
globals : function() {
11+
var myObject = {
12+
name : 'Jory'
13+
};
1514

16-
return myObject;
17-
},
15+
return myObject;
16+
},
1817

19-
functions : function(flag) {
20-
var getValue;
18+
functions : function(flag) {
19+
var getValue;
2120

22-
if (flag) {
23-
getValue = function() { return "a"; }
24-
} else {
25-
getValue = function() { return "b"; }
26-
}
21+
if (flag) {
22+
getValue = function() { return "a"; }
23+
} else {
24+
getValue = function() { return "b"; }
25+
}
2726

28-
return getValue();
29-
},
27+
return getValue();
28+
},
3029

31-
parseInt : function(num) {
32-
return parseInt(num, 10);
33-
},
30+
parseInt : function(num) {
31+
return parseInt(num, 10);
32+
},
3433

35-
identity : function(val1, val2) {
36-
return val1 === val2;
37-
}
38-
};
39-
});
34+
identity : function(val1, val2) {
35+
return val1 === val2;
36+
}
37+
};

app/config.js

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)