Jump to content

Javascript array items via COM dot syntax


Go to solution Solved by ozmike,

Recommended Posts

Posted (edited)

Hi

What is the syntax to access an javascript array item - from auto IT - using the COM dot syntax?

How do you go $js.foo.item(0)

when

$foo = $js.Eval("var foo = [ 1234, 2345 ] ;")

$js = ObjCreate("ScriptControl")
$js.language = "Jscript"

$js.Eval("var foo = [ 1234, 2345 ] ;")
$foo =$js.Eval("foo")
Consolewrite("foo.length =  " & $foo.length & @CRLF)
Consolewrite("foo.item(0) =  " & $foo.item(0) & @CRLF) ; FAILS
Edited by ozmike
  • Solution
Posted (edited)

See my UDF which  gives you OO arrays in auto IT using Native windows JSOn . 

'?do=embed' frameborder='0' data-embedContent>>

Or the scripting object

 

Yes you can. 2 ways

 

Just extend the array object type - which javascript allows - the advantage of OO?

Add this to your web page

Array.prototype.item =function( i ) { return this }  ;

 

$js = ObjCreate("ScriptControl")
$js.language = "Jscript"
$js.Eval("Object.prototype.item            =function( i ) { return this[i] } ;"); MAGIC
$js.Eval("var foo = [ 1234, 2345 ] ;")
$foo =$js.Eval("foo")
Consolewrite("foo.length =  " & $foo.length & @CRLF)
Consolewrite("foo.item(0) =  " & $foo.item(0) & @CRLF) ; WORKS

 

 


Another solution to
$obj.item(n) 
 
A pure AutoIt solution to get a array object item 
 



func OArrayItem ( $o, $i)
dim $O_index = 0
for $OO in $o

if $i = $O_index then
             return $OO
            endif
$O_index = $O_index + 1
Next
        
EndFunc
$js = ObjCreate("ScriptControl")
$js.language = "Jscript"
$js.Eval("var foo = [ {""ph"" : 1234}, {""ph"" : 2345 } ] ;")
$foo =$js.Eval("foo")
Consolewrite("foo.length = " & $foo.length & @CRLF)

$oitem = OArrayItem($foo, 0)
Consolewrite("$oitem.type " & $oitem.ph & @CRLF)
Consolewrite("$oitem.type " & OArrayItem($foo, 0).ph & @CRLF) ; FAILS
 
Edited by ozmike

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...