Сортировка одного массива на основе другого массива с помощью javascript

#java #javascript #jquery #arrays #sorting

#java #javascript #jquery #массивы #сортировка

Вопрос:

У меня есть два массива

  1. MRP [60 80 82 50 80 80 ]
  2. Бренд [ 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"]]