JavaScript:从一系列4个可能值中取出最高的2个数值

时间:2010-05-03 14:28:46

标签: javascript

我正在尝试从4个可能的变量中取出最高的两个值并将它们加在一起,同时忽略较小的两个值。我的价值将在1到5之间。

所以,例如,如果我有变量:

Trait 1 = 3
Trait 2 = 3
Trait 3 = 2
Trait 4 = 1

脚本应该选择3和3,而不是2和1.如果我改变了值,那么我有:

Trait 1 = 4
Trait 2 = 3
Trait 3 = 1
Trait 4 = 5

脚本应该使用4和5,但不能使用3和1.如何进行此操作?

4 个答案:

答案 0 :(得分:2)

将它们放入数组中,然后按降序对数组进行排序。 排序后,您将获得前两个成员所需的值。

答案 1 :(得分:1)

您可能需要考虑这种方法:(与其他答案在同一行)

var Trait1 = 4;
var Trait2 = 3;
var Trait3 = 1;
var Trait4 = 5;

var sorted = [Trait1, Trait2, Trait3, Trait4].sort(function (a, b) { 
   return b - a; 
});

console.log(sorted[0] + sorted[1]);    // returns 9

进一步阅读:

答案 2 :(得分:0)

让我们假设您将数据作为值数组传递,也就是:

var array = [4, 3, 1, 5];

array.sort(); // becomes [1, 3, 4, 5]

var item1 = newArray[array.length - 1];
var item2 = newArray[array.length - 2];

只需排序,你就拥有了价值观。这是一个关于排序的页面:http://www.javascriptkit.com/javatutors/arraysort.shtml

答案 3 :(得分:0)

Vanco在代码中说了什么:

var myarray=[1, 4, 2, 5, 2, 1, 8]
myarray.sort().reverse();
alert(myarray[0] + myarray[1]);