Разработайте функцию-конструктор,
Разработайте функцию-конструктор, которая будет создавать объект Human(человек) создайте массив объектов и реализуйте функцию, которая будет сортировать элементы массива по значению свойства Age по возрастанию или по убыванию.
<script> function Human() { this.name = name; this.sex = sex; this.lang = lang; this.age = age; Human.prototype.eldest = function () { var max = 0; var maxAge = ""; for (var age in Human) { if(max <Human.age) { max = Human.age; maxAge = age; alert ( maxAge) } } } var Ken = new Human(Ken, male, eng, 28); var Pol = new Human(Pol, male, eng, 22); var July = new Human(July, male, uk, 25); var Bill = new Human(Bill, male, rus, 36); </script> Вот чтото такое придумал, но не работает???:help: :help: |
function Human(name, sex, lang, age) { this.name = name; this.sex = sex; this.lang = lang; this.age = age; } Human.prototype.eldest = function(humans) { var maxAge = 0; humans.forEach(function(human) { if (human.age > maxAge) maxAge = human.age; }); alert(maxAge); }; var human = new Human(); var humans = []; humans.push(new Human("Ken", "male", "eng", 28)); humans.push(new Human("Pol", "male", "eng", 22)); humans.push(new Human("July", "female", "uk", 25)); humans.push(new Human("Bill", "male", "rus", 36)); human.eldest(humans); Посмотреть в действии можно тут: https://jsfiddle.net/8u63xku6/ |
Цитата:
Спасибо, но я так и не понял до конца... Я только учусь, вот и туплю)) |
Должно получится что то в этом роде.
function Human(name, sex, lang, age) { this.name = name; this.sex = sex; this.lang = lang; this.age = age; } var Ken = new Human('Ken', 'male', 'eng', 28); var Pol = new Human('Pol', 'male', 'eng', 22); var Maria = new Human('Maria', 'Female', 'rus', 74); var July = new Human('July', 'male', 'uk', 25); var Bill = new Human('Bill', 'male', 'rus', 36); var People = [Ken, Pol, July, Bill, Maria]; for (var i = 0; i < People.length;i++) { document.write("Все что находится в массиве: " + People[i].name + " | " + People[i].sex + " | " + People[i].lang + " | " + People[i].age + "<br />"); } function SortByAge(array, order) { // order = 'asc'-по возрастанию || 'desc'-по убыванию if (order == "asc") { document.write("Находим самого взрослого кандидата!" + "<br />"); var maxValue = Number.NEGATIVE_INFINITY; var maxVname = ""; for (var i = 0; i < array.length; i++) { if (array[i].age > maxValue) { maxValue = array[i].age; maxVname = array[i].name; } } return document.write("Имя: " + maxVname + "<br />" + " Возраст: " + maxValue); } else if (order == "desc") { document.write("Находим самого младшего кандидата!" + "<br />"); var minVelue = Number.POSITIVE_INFINITY; var minVname = ""; for (var i = 0; i < array.length; i++) { if (array[i].age < minVelue) { minVelue = array[i].age; minVname = array[i].name; } } return document.write("Имя: " + minVname + "<br />" + " Возраст: " + minVelue);; } else { document.write("error!"); } }; SortByAge(People, 'asc');// order = 'asc' || 'desc' :) |
n_js,
Самое лучшее решение))) |
Coriolan161,
Цитата:
|
Dilettante_Pro,
хех) |
n_js,
Слишком мудрено... /* Функция-конструктор персоны * @{string} name - имя * @{number} age - возраст */ function Human(name, age) { this.name = name; this.age = age; }; var Ken = new Human('Ken', 28); var Pol = new Human('Pol', 22); var Maria = new Human('maria', 74); var July = new Human('july', 25); var Bill = new Human('Bill', 36); //массив всех персон var peoples = [Ken, Pol, July, Bill, Maria]; /* Функция сортировки по возрасту * @{object} mas - массив персон */ function sortByAge(mas) { //Проверка параметра на массив if (mas instanceof Array) { var sortedData = mas.sort(func) return sortedData; } else console.log('Error'); function func(a, b) { return a.age - b.age; }; }; /* * Функция сортировки по имени * @{object} mas - массив персон */ function sortByName(mas) { //Проверка параметра на массив if (mas instanceof Array) { var sortedData = mas.sort(func) return sortedData; } else console.log('Error'); function func(a, b) { return a.name.toUpperCase() > b.name.toUpperCase(); }; }; /* * Функция рендера данных * @{object} mas - массив объектов * @{string} key - item объекта */ function render(mas, item) { mas.forEach(show); function show(el, i) { document.body.textContent +=' '+(el[item]); }; }; render(sortByName(peoples), 'name'); render(sortByAge(peoples), 'age'); https://jsfiddle.net/xe0t8f4v/3/ |
Часовой пояс GMT +3, время: 08:57. |