19.03.2016, 23:16
|
Новичок на форуме
|
|
Регистрация: 19.03.2016
Сообщений: 3
|
|
Разработайте функцию-конструктор,
Разработайте функцию-конструктор, которая будет создавать объект 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>
Вот чтото такое придумал, но не работает???
|
|
20.03.2016, 03:42
|
Интересующийся
|
|
Регистрация: 11.02.2016
Сообщений: 18
|
|
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/
Последний раз редактировалось dismantled, 20.03.2016 в 03:51.
|
|
20.03.2016, 11:49
|
Новичок на форуме
|
|
Регистрация: 19.03.2016
Сообщений: 3
|
|
Сообщение от Rise
|
АртемZDAN_UA,
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 July = new Human('July', 'male', 'uk', 25);
var Bill = new Human('Bill', 'male', 'rus', 36);
var People = [Ken, Pol, July, Bill];
function SortByAge(array, order) { // order = 'asc' || 'desc'
// ...
// code
// ...
}
SortByAge(People, 'asc');
|
Спасибо, но я так и не понял до конца... Я только учусь, вот и туплю))
|
|
30.11.2016, 16:16
|
Новичок на форуме
|
|
Регистрация: 30.11.2016
Сообщений: 1
|
|
Должно получится что то в этом роде.
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'
|
|
30.11.2016, 16:58
|
|
Профессор
|
|
Регистрация: 21.11.2015
Сообщений: 440
|
|
n_js,
Самое лучшее решение)))
|
|
30.11.2016, 17:37
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Coriolan161,
Сообщение от Coriolan161
|
n_js,
Самое лучшее решение)))
|
А плюсик в карму?
|
|
30.11.2016, 18:10
|
|
Профессор
|
|
Регистрация: 21.11.2015
Сообщений: 440
|
|
Dilettante_Pro,
хех)
|
|
01.12.2016, 01:18
|
|
Профессор
|
|
Регистрация: 08.08.2014
Сообщений: 261
|
|
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/
|
|
|
|