Hi, Sorry for the chatter, I had a typo in the code--- didn't have my glasses couldn't see it..
have a good holiday.. On Tue, Dec 23, 2014 at 7:11 PM, Gary M <[email protected]> wrote: > hi, > > I'm new to nashorn and have bumped into some issues with arrays. > > Occasionally, arrays length property is undefined, values are returned as > null and push doesn't always seem to work. > > I have this code I'm porting from C > > This is the output of the code: > SchemeTest-> internal scheme identifier validator - sunny day: START > entry: > {"eid":"test_scheme0_test_dest0_test_acc0_test_evt0","sevt":"","priority":"0"} > array: [] > array final: [] > > The entry should have been pushed into the array, its not. > > the code is in the first for loop. > > All the other loops the arrays work correctly.. > > I have changed var positions in the code, with no change. > > I have replaced the "_evti= new Array'" with "_evti= [];" with no > change. > > any suggestions ? > > -g > > var buildpath = function (sids,dids,aids,eids,pris){ > var _sida; > var _dida; > var _aida; > var _eida; > var _pria; > var _schi; > var _dsti; > var _acci; > var _evti; > // check if parameters are string, if they are make into array > if ((sids)&&(typeof sids === 'string')) _sida= new Array(sids); > if ((dids)&&(typeof dids === 'string')) _dida= new Array(dids); > if ((aids)&&(typeof aids === 'string')) _aida= new Array(aids); > if ((eids)&&(typeof eids === 'string')) _eida= new Array(eids); > if ((eids)&&(typeof eids === 'string')) _eida= new Array(eids); > if ((pris)&&(typeof pris === 'string')) _pria= new Array(pris); > > > // start building the path sections from the bottom up > if(_eida){ > _evti= new Array; > // loop through the list > for ( var i in _eida){ > var x = new Object; > // set the event's identifier > x.eid=_eida[i]; > // set the event event record type > x.sevt=""; > // set the event priority > x.priority=_pria[i]; > // add it to the list > _evti.push[x]; > _evti.push["dog"]; > print ( "entry: " + JSON.stringify(x)); > print ( "array: " + JSON.stringify(_evti)); > } > } > print ( "array final: " + JSON.stringify(_evti)); > > > > //build the accept list > if(_aida){ > _acci= new Array; > // loop through the list > for ( var i in _aida){ > var x = new Object; > // set the event's identifier > x.aid=_aida[i]; > // set the event event record type > x.sacc=""; > // set the event list > x.evtli=new Array; > if (_evti) > x.evtli=_evti; > // add it to the lis > _acci.push(x); > } > } > > //build the destination > if(_dida){ > _dsti= new Array; > // loop through the list > for ( var i in _dida){ > var x = new Object; > // set the event's identifier > x.did=_dida[i]; > // set the event event record type > x.sdst=""; > // set the event event priority > x.accli=new Array; > if (_acci) > x.accli=_acci; > // add it to the lis > _dsti.push(x); > } > } > //build the scheme > if(_sida){ > _schi= new Array; > // loop through the list > for ( var i in _sida){ > var x = new Object; > // set the event's identifier > x.sid=_sida[i]; > // set the event event record type > x.ssch=""; > // set the destinations > x.dstli=new Array; > if (_dsti) > x.dstli=_dsti; > // add it to the lis > _schi[i]= x; > } > } > var rtnpath; > // build the return path > if (_schi) rtnpath=JSON.stringify(_schi); > else if (_dsti)rtnpath=JSON.stringify(_dsti); > else if (_acci)rtnpath=JSON.stringify(_acci); > else if (_evti)rtnpath=JSON.stringify(_evti); > return rtnpath; > }; > > > > > >
