2011-10-04 87 views
0

我似乎有正确的语法,但我始终得到一个NaN值,我相信它与数组的传播有关,请您可以检查代码并查看哪里我错了。比较Javascript数组中的数字以获得最大数字

var _array = new Array(); 

var _first = 1; 
var _second = 4; 

$('#con > div').each(function(index){ 

    var _data = $(this).css('left').split('px')[0]; 
    var _class = $(this).attr('class').split(' ')[0]; 

    _array[_first] = [_data]; 
    //_array[_second] = _class; 

    _first++; 
    _second++; 

    if(index == 2){ 
     _first = 1; 
     _second = 4; 

     for(var i = 0; i < _array.length; i++) 
     console.log(_array[i]); 

     var large = Math.max.apply(Math, _array); 
     console.log(large); 

    } 
}); 

感谢

http://jsfiddle.net/LTMbr/1/

+1

请注意,您的变量'_array'是_not_数字数组,它是一个数组因为当你说'_array [_first] = [_data];'(除非在你的问题中这只是一个错字)你在'_data'周围有方括号。 – nnnnnn

+0

感谢你提到我意识到并删除它! – Xavier

回答

2

所以,我修改了一点,看看 - http://jsfiddle.net/LTMbr/4/和你_array [0]是不确定的。所以这就是为什么您拨打Math.max正在返回NaN。

+0

感谢哥们,现在有道理 – Xavier

+0

是的,如果你将_first设置为0,它就可以工作。 – itsmatt