Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.11.2014, 09:37
Новичок на форуме
Отправить личное сообщение для kazali Посмотреть профиль Найти все сообщения от kazali
 
Регистрация: 15.11.2014
Сообщений: 2

Сортировка двух массивов
Есть два массива
prices= [500, 300, 400, 700];
names = ['product1', 'product2', 'product3', 'product4'];
Надо сортировать массив prices по убыванию, чтобы массив names тоже был сортирован таким же образом
результат должен быть
[700, 500, 400, 300] и ['product4', 'product1', 'product3', 'product2']
Ответить с цитированием
  #2 (permalink)  
Старый 15.11.2014, 09:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

kazali,
var prices = [500, 300, 400, 700],
    names = ['product1', 'product2', 'product3', 'product4'],
    temp = {};
for (var i = 0; i < names.length; i++) {
    temp[names[i]] = prices[i]
};
names.sort(function(a, b) {
    return temp[b] - temp[a]
});
prices.sort(function(a, b) {
    return b - a
});
alert(prices + '\n' + names)
Ответить с цитированием
  #3 (permalink)  
Старый 15.11.2014, 10:08
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

prices= [500, 300, 400, 700];
names = ['product1', 'product2', 'product3', 'product4'];

binding={}
 for (i in prices){
  if(prices.hasOwnProperty(i))
  binding[prices[i]]=names[i]
}
delete i
binding=[].sort.apply(binding)

prices=[]
names=[]
for(i in binding){
if(binding.hasOwnProperty(i)){
   prices.push(i)
   names.push(binding[i])
 }
}
delete i

names=names.reverse()
prices=prices.reverse()
alert([prices, names])
Ответить с цитированием
  #4 (permalink)  
Старый 15.11.2014, 10:14
Новичок на форуме
Отправить личное сообщение для kazali Посмотреть профиль Найти все сообщения от kazali
 
Регистрация: 15.11.2014
Сообщений: 2

Большое спасибо
Ответить с цитированием
  #5 (permalink)  
Старый 15.11.2014, 10:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

krutoy,
и зачем эти пляски, чтоб код запутать и сделать длиннее ...
Ответить с цитированием
  #6 (permalink)  
Старый 15.11.2014, 10:38
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

рони,
Я когда постил, не видел твой вариант. Твой круче, я не спорю. Просто я новичек, и многого не знаю. А мне в голову пришла именно такая реализация. Удалять не буду, так как кому-то мой вариант может показаться ясней и прозрачней.
Ответить с цитированием
  #7 (permalink)  
Старый 15.11.2014, 18:29
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

kazali,
Может, правильнее держать один массив с объектами (название, цена)?
А то потом еще какие-то параметры добавятся..
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение всех элементов двух массивов. sharun Общие вопросы Javascript 27 14.05.2018 15:38
Пересечение и разность двух массивов harold Общие вопросы Javascript 9 18.12.2013 21:41
как сделдать меню из двух калонок как в bestchange.ru Андрей Лебедев Элементы интерфейса 2 21.01.2013 10:32
Смешивание двух фильтров ivanforpw Общие вопросы Javascript 0 21.10.2012 14:22
Сортировка нескольких массивов PAMAC Общие вопросы Javascript 4 07.02.2011 14:55