2012-03-16 56 views
1

我想从数组中选择最高值,所以我使用math.max函数它工作得很好,当我运行这只与一个数组,但因为我有两个不同的数组首先我想加入他们在一起,所以我使用concat函数,但它不起作用。concat函数在JavaScript中?

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 


<script type="text/javascript"> 

var maX=[6,1] 

var miN=[10,20] 

alert(Math.max.apply(maX.concat(miN)) 


</script> 
</head> 

<body> 
</body> 
</html> 

回答

4

apply接收到两个参数:“this”和参数列表。尝试

Math.max.apply(null, maX.concat(miN)) 

Math.max.apply(Math, maX.concat(miN)) 
+0

我给他们双参数但不工作呢警报(Math.max.apply(NULL,maX.concat(MIN)) – Carlos 2012-03-16 04:04:39

+0

@amit你需要一个更多的右括号。 – Chirag 2012-03-16 04:07:36

+0

@amit:它适合我。你有没有机会使用IE?另外,使用开发者控制台和console.log来测试这样的东西,而不是'alert'。它在很多方面都更好。 – hugomg 2012-03-16 04:07:40

1

的第一个参数是applythis的值,而不是一个参数。尝试

Math.max.apply(Math, maX.concat(miN)) 
+0

无法正常工作我试过了 – Carlos 2012-03-16 04:08:41

0

到Concat的两个数组:在joinedarray 编辑var joinedarray = array1.concat(array2)

然后做最大:做Math.max阵列REFFERENCE这个答案上:JavaScript: min & max Array values?

+0

如果您将数组传递给max,您只需将NaN返回 – hugomg 2012-03-16 04:09:01

+0

即可完成数学运算。最大的数组参考这个答案:http://stackoverflow.com/questions/1669190/javascript-min-max-array-values – dbrin 2012-03-16 04:12:56

0

下面的代码连接两个array:

var alpha = ["a", "b", "c"]; 
var numeric = [1, 2, 3]; 

// creates array ["a", "b", "c", 1, 2, 3]; alpha and numeric are unchanged 
var alphaNumeric = alpha.concat(numeric); 

以下代码连接三个数组:

var num1 = [1, 2, 3]; 
var num2 = [4, 5, 6]; 
var num3 = [7, 8, 9]; 



// creates array [1, 2, 3, 4, 5, 6, 7, 8, 9]; num1, num2, num3 are unchanged 


var nums = num1.concat(num2, num3); 

下面的代码连接三个值的数组:

var alpha = ['a', 'b', 'c']; 

// creates array ["a", "b", "c", 1, 2, 3], leaving alpha unchanged 
var alphaNumeric = alpha.concat(1, [2, 3]);