找到字符串及其索引中的最大数字

时间:2015-03-17 14:33:03

标签: javascript jquery

好吧,我对令人敬畏的oneliner的渴望还没有解决..

我有

var a = "2:3:9:5";

我想找到最大的数字及其索引。

在这种情况下,

9和索引2

执行此操作的复杂且令人敬畏的方式是什么?

我试过了:

var biggest_number = Math.max.apply(Math, a.split(':'));

5 个答案:

答案 0 :(得分:3)

试试这个

var a = "2:3:9:5";
var arr = a.split(":");
var max = Math.max.apply(null, arr);
var index = arr.indexOf(max.toString());

答案 1 :(得分:1)

DEMO

查看我找到最大数字及其索引的方法:

var a = "2:3:9:5";
var newArr = [];
var counter = 0;
var num = 0;
var split = ':';  
var max = 0;
var indexOfMax = 0;

for(var i = 0; a[i] != null; i++)
{
    if(a[i] != split)
    {
        newArr[counter] = a[i];
        counter++;
    }
}

for(var i = 0; newArr[i] != null; i++)
{
    num = parseInt(newArr[i]);
    if(max < num)
    {
        max = num;
        indexOfMax = i;
    }
}
alert(max);
alert(indexOfMax);

答案 2 :(得分:1)

在一行中:

console.log(Math.max.apply(Math, a.split(':')), a.split(':').indexOf(Math.max.apply(Math, a.split(':')).toString()));

答案 3 :(得分:0)

像这样使用:

var a = "2:3:9:5";
a_array = a.split(':').sort().reverse();
a_array[0];

答案 4 :(得分:0)

以下代码可满足您的需求:

var a = "2:3:9:5";
var arr = a.split(":");
var max = Math.max.apply(null, arr);
var str_max=""+max;
var index = arr.indexOf(str_max);
document.write(max);
document.write("<br>");
document.write(index);