説明
配列(BigArray)の要素を1つずつ後方にずらします。先頭には指定した値が入ります。unshift()のパラメーターはBigArrayオブジェクト、先頭に追加する値の順番で指定します。unshift()の戻り値はありません。
// BigArray:Unshift(BigArray)
// 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 Unshift
function unshift(ary,d){
var s=ary.length;
while(s>0){
var n=ary.get(s-1);sleep(10);
ary.set(s,n);sleep(10);
s=s-1;
}
ary.set(0,d);sleep(10);
}
// Sample Code
var myAry=new BigAry(0);
myAry.set(0, 12);sleep(9);
unshift(myAry,0x30313233);
unshift(myAry,0x40414243);
log(myAry.length,"\n");
目次に戻る