説明
指定した値を配列(BigArray)から探し出します。indexOf()はBigArrayオブジェクト、検索する値、検索開始位置の順番でパラメーターを指定します。なお、値が見つからなかった場合は-1を返します。
// BigArray:IndexOf(BigArray,value,start)
// BigArray(adrs)
function BigAry(a){
this.adrs=a; // EEPROM Address
this.length=0; // Length
this.set=function(idx,n){ // Set Data
var adrs=this.adrs+idx*4; // EEPROM Address+Index
i2cw(0x50|(((adrs>>16)&1)<<2), (adrs&0xff00)>>8,adrs&0xff, (n&0xFF000000)>>24,(n&0xFF0000)>>16,(n&0xFF00)>>8,n&0xFF);
if ((idx+1)>this.length){ this.length=idx+1; }
};
this.get=function(idx){ // Get Data
var adrs=this.adrs+idx*4; // EEPROM Address+Index
var t1,t2,t3,t4,d=0x50|(((adrs>>16)&1)<<2);
i2cw(d,(adrs&0xff00)>>8,adrs&255);
i2cr(d,t1,t2,t3,t4);
return (t1<<24)|(t2<<16)|(t3<<8)|t4;
};
}
// BigArray IndexOf
function indexOf(ary,n,s){
while(s<=ary.length){
var d=ary.get(s);
sleep(10); // Wait
if(d==n){ return s; }
s=s+1;
}
return -1;
}
// Sample Code
var myAry=new BigAry(0);
log("Array Length?\n");
myAry.length=input();
while(1){
log("value (0-0xFFffFFff)\n");
var val=input();
log("Start index\n");
var start=input();
var r=indexOf(myAry,val,start);
log("Result:",r,"\n");
}
目次に戻る