私の質問では、値が 0 より大きい JavaScript 配列の最後の項目のインデックスをどのように決定するかを述べています。
したがって、 myarray =[12, 35, 56, 0, 42, 0]
この配列の最後の正の整数のインデックスを見つけるにはどうすればよいですか? つまり、この場合、答えは 4 (いいえ 42) になります。
私の質問では、値が 0 より大きい JavaScript 配列の最後の項目のインデックスをどのように決定するかを述べています。
したがって、 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]);