15.11.2014, 09:37
|
Новичок на форуме
|
|
Регистрация: 15.11.2014
Сообщений: 2
|
|
Сортировка двух массивов
Есть два массива
prices= [500, 300, 400, 700];
names = ['product1', 'product2', 'product3', 'product4'];
Надо сортировать массив prices по убыванию, чтобы массив names тоже был сортирован таким же образом
результат должен быть
[700, 500, 400, 300] и ['product4', 'product1', 'product3', 'product2']
|
|
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)
|
|
15.11.2014, 10:08
|
Профессор
|
|
Регистрация: 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])
|
|
15.11.2014, 10:14
|
Новичок на форуме
|
|
Регистрация: 15.11.2014
Сообщений: 2
|
|
Большое спасибо
|
|
15.11.2014, 10:31
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
krutoy,
и зачем эти пляски, чтоб код запутать и сделать длиннее ...
|
|
15.11.2014, 10:38
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
рони,
Я когда постил, не видел твой вариант. Твой круче, я не спорю. Просто я новичек, и многого не знаю. А мне в голову пришла именно такая реализация. Удалять не буду, так как кому-то мой вариант может показаться ясней и прозрачней.
|
|
15.11.2014, 18:29
|
Профессор
|
|
Регистрация: 12.04.2010
Сообщений: 557
|
|
kazali,
Может, правильнее держать один массив с объектами (название, цена)?
А то потом еще какие-то параметры добавятся..
|
|
|
|