比较多个值并分配相关变量

Comparing multiple values and assigning associated variables

本文关键字:变量 分配 比较      更新时间:2023-09-26

我有四个变量需要排序,并根据结果将相关值推送到两个数组中的一个。值是动态的,可以匹配,但我需要在数组(2和2)中进行偶数分割,理想情况下,在平局的情况下,a和b总是转到第一个数组。

var a = 0;
var b = 23.5;
var c = 0;
var d = 96.2;
var ac, bc, cc, dc;
var array1 = [];
var array2 = [];
//Here is where Im trying to find the top numbers, and based on the value, push the ac, bc, cc, or dc variables to separate arrays.
((a > b && a > c && a > d) ? (array1.push(ac)): (array2.push(ac)));
((b > a && b > c && b > d) ? (array1.push(bc)): (array2.push(bc)));
((c > a && c > b && c > d) ? (array1.push(cc)): (array2.push(cc)));
((d > a && d > c && d > d) ? (array1.push(dc)): (array2.push(dc)));

显然,这是行不通的,因为它只找到了四个数字中最高的一个。有没有办法在不写每一个场景的情况下做到这一点?

编辑:为了澄清,我试图比较第一个集合(a,b,c,d),并根据结果将第二个集合(ac,bc,cc,dc)排序为两个数组。该方法通过比较两个变量(a>b)来工作,因为只有两个结果(真/假)。

var a = 0;
var b = 23.5;
var c = 0;
var d = 96.2;
var array1 =
[
    { priority: a, value: ac },
    { priority: b, value: bc },
    { priority: c, value: cc },
    { priority: d, value: dc }
];
array1.sort(function(v1, v2) { return v1.priority - v2.priority; });
var array2 = array1.splice(2, 2); // remove 2 items starting at index 2

现在您可以将这些值称为array1[0].value

编辑:如果您只想要值,可以执行以下操作:

array2 = array2.map(function(v) { return v.value; });