好吧,我对令人敬畏的oneliner的渴望还没有解决..
我有
var a = "2:3:9:5";
我想找到最大的数字及其索引。
在这种情况下,:9
和索引2
。
执行此操作的复杂且令人敬畏的方式是什么?
我试过了:
var biggest_number = Math.max.apply(Math, a.split(':'));
答案 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)
查看我找到最大数字及其索引的方法:
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);