1

私の質問では、値が 0 より大きい JavaScript 配列の最後の項目のインデックスをどのように決定するかを述べています。

したがって、 myarray =[12, 35, 56, 0, 42, 0]

この配列の最後の正の整数のインデックスを見つけるにはどうすればよいですか? つまり、この場合、答えは 4 (いいえ 42) になります。

4

6 に答える 6

5

近道はありません。配列をlength - 1to から(含む) まで逆方向にループし、最初のエントリ0で停止します。>0

于 2012-12-07T15:43:53.360 に答える
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
于 2012-12-07T15:45:22.630 に答える
0

お役に立てれば:

for(var i=myarray.length-1; i>=0;i--){
    if(myarray[i] > 0){
       alert(i);
       break;
  }
}
if(i<0)
alert(i);
于 2012-12-07T15:46:24.067 に答える
0

これはそれを行う必要があります:

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);
于 2012-12-07T15:57:12.427 に答える
0

この解決策を試してください:

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]);
于 2012-12-07T16:14:59.323 に答える