Сортировка двух массивов
Есть два массива
prices= [500, 300, 400, 700]; names = ['product1', 'product2', 'product3', 'product4']; Надо сортировать массив prices по убыванию, чтобы массив names тоже был сортирован таким же образом результат должен быть [700, 500, 400, 300] и ['product4', 'product1', 'product3', 'product2'] |
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)
|
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])
|
Большое спасибо
|
krutoy,
и зачем эти пляски, чтоб код запутать и сделать длиннее ... :( |
рони,
Я когда постил, не видел твой вариант. Твой круче, я не спорю. Просто я новичек, и многого не знаю. А мне в голову пришла именно такая реализация. Удалять не буду, так как кому-то мой вариант может показаться ясней и прозрачней. |
kazali,
Может, правильнее держать один массив с объектами (название, цена)? А то потом еще какие-то параметры добавятся.. |
| Часовой пояс GMT +3, время: 10:28. |