Remove Duplicates
by jessekinsman
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.3.4/jasmine.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.3.4/jasmine-html.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.3.4/jasmine.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.3.4/boot.js"></script>
<div id='target'>no snapshots</div>
Babel + JSX
function removeDuplicates(arr, key) {
var newArr = [];
newArr = arr.slice(0, arr.length);
for (var ind = 0; ind < newArr.length; ind += 1) {
for (var i = ind+1; i < newArr.length; i += 1) {
if (newArr[ind][key] == newArr[i][key]) {
newArr.splice(i, 1);
i -= 1;
}
}
}
return newArr;
}
var testArr = [
{"name": "last name", "msg": "Enter a last name", "problem": "too short"},
{"name": "first name", "msg": "Enter a last name", "problem": "too short"},
{"name": "last name", "msg": "Enter a last name", "problem": "too short"},
{"name": "email", "msg": "Enter a last name", "problem": "invalid email"},
{"name": "password name", "msg": "Enter a last name", "problem": "too short"},
{"name": "password name", "msg": "Enter a last name", "problem": "too short"}
]
// unit tests
// do not modify the below code
describe('reduce', function() {
it('removeDuplicates', () => {
const testList = [
{"name": "last name", "msg": "Enter a last name", "problem": "too short"},
{"name": "first name", "msg": "Enter a last name", "problem": "too short"},
{"name": "last name", "msg": "Enter a last name", "problem": "too short"},
{"name": "email", "msg": "Enter a last name", "problem": "invalid email"},
{"name": "password name", "msg": "Enter a last name", "problem": "too short"},
{"name": "password name", "msg": "Enter a last name", "problem": "too short"}];
expect(removeDuplicates(testList, "name").length).toEqual(4);
});
it('removeDuplicates 2', () => {
const testList = [
{"name": "first name", "msg": "Enter a last name", "problem": "too short"},
{"name": "first name", "msg": "Enter a last name", "problem": "too short"},
{"name": "last name", "msg": "Enter a last name", "problem": "too short"},
{"name": "email", "msg": "Enter a last name", "problem": "invalid email"},
{"name": "password name", "msg": "Enter a last name", "problem": "too short"},
...