#java #javascript #jquery #arrays #sorting
#java #javascript #jquery #массивы #сортировка
Вопрос:
У меня есть два массива
- MRP
[60 80 82 50 80 80 ]
- Бренд
[ A B C D E F ]
Мне нужно получить два лучших бренда на основе MRP. самые высокие значения в MRP равны 82, 80, но 80 повторяется 3 раза, поэтому мне также нужны все повторяющиеся значения, чтобы получить два лучших бренда. т.е. мне нужно отобразить [C B E F]
Для этого я отсортировал MRP в порядке убывания.Теперь MRP после сортировки становится [ 82 80 80 60 50 ]
Теперь мне нужно отсортировать массив брендов на основе отсортированного MRP.Может ли кто-нибудь помочь в этой сортировке с помощью javascript.
Комментарии:
1. Какие-либо попытки самостоятельно до сих пор? Это Java или JavaScript?
2. @ZiNNED Я отсортировал только первый массив, т.Е. MRP, а не бренды. но теперь я получил решение, которым поделился Нишанти Грашиа в последующем сообщении.
Ответ №1:
Попробуйте приведенный ниже код
var A = [60, 80, 82, 50, 80, 80];
var B = ['a', 'b', 'c', 'd', 'e', 'f'];
var all = [];
for (var i = 0; i < B.length; i ) {
all.push({ 'A': A[i], 'B': B[i] });
}
all.sort(function(a, b) {
return b.A - a.A;
});
A = [];
B = [];
for (var i = 0; i < all.length; i ) {
A.push(all[i].A);
B.push(all[i].B);
}
alert(A);
alert( B);
Комментарии:
1. Рад помочь! Пожалуйста, также проголосуйте и примите в качестве ответа, если это помогло.
Ответ №2:
Использование Lodash / подчеркивания:
var A = [60, 80, 82, 50, 80, 80];
var B = ['a', 'b', 'c', 'd', 'e', 'f'];
var result = _.unzip(_.sortBy(_.zip(A, B), '-0'));
var A_sorted = result[0]; // [82, 80, 80, 80, 60, 50]
var B_sorted = result[1]; // ["c", "b", "e", "f", "a", "d"]]