Разработайте функцию-конструктор,
Разработайте функцию-конструктор, которая будет создавать объект 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, время: 05:28. |