[英]Sort one array based on another array using javascript
I have two arrays 我有两个数组
[60 80 82 50 80 80 ]
[60 80 82 50 80 80 ]
[ ABCDEF ]
[ ABCDEF ]
I need to get top two brands based on MRP. 我需要根据MRP获得两大品牌。 highest two in MRP is 82 ,80 but 80 is 3 times repeated so i need all repeated values as well to get top two brands.
MRP中最高的两个是82,80但80是重复的3次所以我需要所有重复的值以获得前两个品牌。 ie i need to display
[CBEF]
即我需要显示
[CBEF]
For that i sorted MRP in descending order.Now MRP after sorting become [ 82 80 80 60 50 ]
为此我按降序排序MRP。现在排序后的MRP变为
[ 82 80 80 60 50 ]
Now i need to sort Brand Array based on Sorted MRP.Can some one help in this sorting using javascript . 现在我需要根据Sorted MRP对Brand Array进行排序。可以使用javascript对这个排序中的一些帮助。
Try below code 试试下面的代码
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);
Using lodash/underscore: 使用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"]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.