正如我的问题所述,我将如何确定 JavaScript 数组中最后一项的索引,其值 > 0
所以如果 myarray =[12, 35, 56, 0, 42, 0]
我如何找到这个数组中最后一个正整数的索引?即在这种情况下,答案将是 4(第 42 号)。
正如我的问题所述,我将如何确定 JavaScript 数组中最后一项的索引,其值 > 0
所以如果 myarray =[12, 35, 56, 0, 42, 0]
我如何找到这个数组中最后一个正整数的索引?即在这种情况下,答案将是 4(第 42 号)。
没有捷径,只需从length - 1
to 0
(包括)向后循环数组并在第一个>0
条目处停止。
试试这个:
var array = [12, 35, 56, 0, 42, 0];
function getLastNotZero(array){
var t = 0, i = array.length-1;
while(t <= 0 && i >= 0){
t = array[--i];
}
return i-1;
}
getLastNotZero(array);
//Returns 4
希望这可以帮助:
for(var i=myarray.length-1; i>=0;i--){
if(myarray[i] > 0){
alert(i);
break;
}
}
if(i<0)
alert(i);
这应该这样做:
var myarray = [12, 35, 56, 0, 42, 0];
var found = {};
found.value = 0;
found.index = 0;
var j = myarray.length;
for (j; j>0; j--) {
if (myarray[j] > 0) {
found.value = myarray[j];
found.index = j;
break;
}
}
alert(found.index);
编辑:注意上面不会澄清 0 索引或没有这样:
found.value = undefined;
found.index = undefined;
var j = myarray.length;
for (j; j>0; j--) {
if (myarray[j] > 0) {
found.value = myarray[j];
found.index = j;
break;
}
}
alert(found.index);
试试这个解决方案:
var myarray = [12, 35, 56, 0, 42, 0], index;
$.each(myarray,function(idx,el){
if(el > 0){
index = idx;
}
});
alert('Index:'+index+', value:'+myarray[index]);
.reverse()
你可以用and得到反向索引.findIndex
,然后做一些基本的算术来翻转它:
> myarray = [12, 35, 56, 0, 42, 0]
> var ridx = myarray.slice().reverse().findIndex(n => 0 < n)
1
> var idx = myarray.length - 1 - ridx
4