Вот подход, который вы можете использовать, чтобы начать работу.Это функция, которая сортирует объекты с заданными вами свойствами и принимает имя свойства для сортировки (в настоящее время обрабатываются только целые числа и строки):
let data = [{ name: 'John', sName: 'Foo', age: 20, occupation: 'Developer', salary: 40000 },{ name: 'Bob', sName: 'Boo', age: 40, occupation: 'Chef', salary: 20000 },{ name: 'Mark', sName: 'Yu', age: 50, occupation: 'Manager', salary: 50000 }]
let sortBy = (arr, prop) => arr.sort((a,b) => Number.isInteger(a[prop])
? (a[prop] - b[prop])
: a[prop].localeCompare(b[prop])
)
console.log(sortBy(data, 'age'))
console.log(sortBy(data, 'name'))
console.log(sortBy(data, 'occupation'))
console.log(sortBy(data, 'salary'))
Итак, ваша функция employeeSorting
будет выглядеть примерно так:
function employeeSorting () {
var sortedElement = prompt('What parameter should be used for sorting? (options: name, sName, age, occupation, salary)');
if (sortedElement in employees)
return sortBy(employees, sortedElement) // <-- use sortBy here
else
alert('You have entered an invalid parameter, please try again');
}