[英]Sort one array based on another array using javascript
我有两个数组
[60 80 82 50 80 80 ]
[ ABCDEF ]
我需要根据MRP获得两大品牌。 MRP中最高的两个是82,80但80是重复的3次所以我需要所有重复的值以获得前两个品牌。 即我需要显示[CBEF]
为此我按降序排序MRP。现在排序后的MRP变为[ 82 80 80 60 50 ]
现在我需要根据Sorted MRP对Brand Array进行排序。可以使用javascript对这个排序中的一些帮助。
试试下面的代码
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);
使用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.