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

时间:2015-03-31 20:43:04

标签: javascript

我需要对四个变量进行排序,并根据结果将相关值推送到两个数组中的一个。值是动态的,并且可以匹配,但我需要在数组(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),因为只有两个结果(真/假)。

1 个答案:

答案 0 :(得分:3)

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; });