Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.04.2014, 22:20
Интересующийся
Отправить личное сообщение для Jekins Посмотреть профиль Найти все сообщения от Jekins
 
Регистрация: 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 по убыванию');
Ответить с цитированием
  #2 (permalink)  
Старый 14.04.2014, 22:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от Jekins
а затем выдать title этих результатов по убыванию
Т.е. еще раз сортировать?
Или просто вывести "элементы массива в обратном порядке"?
Ответить с цитированием
  #3 (permalink)  
Старый 14.04.2014, 22:26
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

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
Ответить с цитированием
  #4 (permalink)  
Старый 14.04.2014, 22:41
Интересующийся
Отправить личное сообщение для Jekins Посмотреть профиль Найти все сообщения от Jekins
 
Регистрация: 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});
Ответить с цитированием
  #5 (permalink)  
Старый 14.04.2014, 22:42
Интересующийся
Отправить личное сообщение для Jekins Посмотреть профиль Найти все сообщения от Jekins
 
Регистрация: 14.03.2013
Сообщений: 12

Сообщение от ksa Посмотреть сообщение
Т.е. еще раз сортировать?
Или просто вывести "элементы массива в обратном порядке"?
Ниже помогли уже, спасибо, но если знаешь ответ на второй мой вопрос, то буду благодарен.
Ответить с цитированием
  #6 (permalink)  
Старый 14.04.2014, 22:53
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

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
Ответить с цитированием
  #7 (permalink)  
Старый 14.04.2014, 23:01
Интересующийся
Отправить личное сообщение для Jekins Посмотреть профиль Найти все сообщения от Jekins
 
Регистрация: 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)
Всё гениальное - просто))) Спасибо)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в шаблоне диррективы узнать массив это или строка? delias Angular.js 1 18.03.2014 07:33
Отправить, когда четко соберется массив vas88811 Events/DOM/Window 11 26.02.2014 21:55
Массив объектов doox911 Библиотеки/Тулкиты/Фреймворки 6 16.01.2014 22:36
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30