14.04.2014, 22:20
|
Интересующийся
|
|
Регистрация: 14.03.2013
Сообщений: 12
|
|
Отсортировать массив
Доброго времени суток.
Мне необходимо отсортировать массив по числовым результатам каждого элемента, а затем выдать title этих результатов по убыванию.
Я смог лишь отсортировать по числовым результатам, но как теперь вытащить у них title, сохроняя сортировку, не представляю и прошу у вас помощи. Вот пример:
var driver = {
title: 'водитель',
result: 5
};
var spaceman = {
title: 'космонафт',
result: 2
};
var doctor = {
title: 'доктор',
result: 8
};
var resultArray = [driver.result, spaceman.result, doctor.result];
resultArray.sort(function(a,b){return b - a});
console.log(resultArray);
console.log('Здесь должны быть их title по убыванию');
|
|
14.04.2014, 22:25
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от Jekins
|
а затем выдать title этих результатов по убыванию
|
Т.е. еще раз сортировать?
Или просто вывести "элементы массива в обратном порядке"?
|
|
14.04.2014, 22:26
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,585
|
|
var driver = {
title: 'водитель',
result: 5
};
var spaceman = {
title: 'космонафт',
result: 2
};
var doctor = {
title: 'доктор',
result: 8
};
var resultArray = [driver, spaceman, doctor];
resultArray.sort(function(a,b){return b.result - a.result});
console.log(resultArray);
__________________
29375, 35
|
|
14.04.2014, 22:41
|
Интересующийся
|
|
Регистрация: 14.03.2013
Сообщений: 12
|
|
Сообщение от Aetae
|
var driver = {
title: 'водитель',
result: 5
};
var spaceman = {
title: 'космонафт',
result: 2
};
var doctor = {
title: 'доктор',
result: 8
};
var resultArray = [driver, spaceman, doctor];
resultArray.sort(function(a,b){return b.result - a.result});
console.log(resultArray);
|
Во! спасибо! То, что надо.
Тогда ещё один вопрос: есть ли возможность в строку:
var resultArray = [driver, spaceman, doctor];
не ставить по одной переменной, а как-то объединить их в другую переменную и вывести в этой строке. Что-то типо:
var results {
var driver: {
title: 'водитель',
result: 5
},
var spaceman = {
title: 'космонафт',
result: 2
},
var doctor = {
title: 'доктор',
result: 8
}
}
var resultArray = [results];
resultArray.sort(function(a,b){return b.result - a.result});
|
|
14.04.2014, 22:42
|
Интересующийся
|
|
Регистрация: 14.03.2013
Сообщений: 12
|
|
Сообщение от ksa
|
Т.е. еще раз сортировать?
Или просто вывести "элементы массива в обратном порядке"?
|
Ниже помогли уже, спасибо, но если знаешь ответ на второй мой вопрос, то буду благодарен.
|
|
14.04.2014, 22:53
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,585
|
|
var resultArray = [
{
title: 'водитель',
result: 5
},
{
title: 'космонафт',
result: 2
},
{
title: 'доктор',
result: 8
}
]
resultArray.sort(function(a,b){return b.result - a.result});
console.log(resultArray)
__________________
29375, 35
|
|
14.04.2014, 23:01
|
Интересующийся
|
|
Регистрация: 14.03.2013
Сообщений: 12
|
|
Сообщение от Aetae
|
var resultArray = [
{
title: 'водитель',
result: 5
},
{
title: 'космонафт',
result: 2
},
{
title: 'доктор',
result: 8
}
]
resultArray.sort(function(a,b){return b.result - a.result});
console.log(resultArray)
|
Всё гениальное - просто))) Спасибо)
|
|
|
|