Skip to content

Instantly share code, notes, and snippets.

@kbariotis
Created December 20, 2016 10:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kbariotis/144c9a58948748d236fb14b80565eeb6 to your computer and use it in GitHub Desktop.
Save kbariotis/144c9a58948748d236fb14b80565eeb6 to your computer and use it in GitHub Desktop.
'use strict';
const sortModule = require('./sort');
/* Example array */
const array = [
{
name: 'Kostas',
age: 28
},
{
name: 'Helen',
age: 25
},
{
name: 'George',
age: 32
}
];
const a = sortModule.sortArray(array, 'age');
console.log(a);
'use strict';
module.exports.sortArray = (array, sortingField) => {
const clone = array.slice(0); // clone so the original stays intact
return clone.sort((a, b) => sorter(a, b, sortingField));
};
const sorter = (a, b, sortingField) => {
const n1 = a[sortingField];
const n2 = b[sortingField];
if (!Number.isInteger(n1) || !Number.isInteger(n2)) {
throw new Error('Not an integer passed');
}
return n1 > n2 ? 1 : -1;
};
'use strict';
const assert = require('assert');
const sortModule = require('./sort');
/* Example array */
const array = [
{
name: 'Kostas',
age: 28
},
{
name: 'Helen',
age: 25
},
{
name: 'George',
age: 32
}
];
const a = sortModule.sortArray(array, 'age');
assert.equal(a[0].age, 25);
assert.equal(a[1].age, 28);
assert.equal(a[2].age, 32);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment