Hello, and thanks for your question!
It looks like you're asking about host (.NET) arrays rather than JavaScript arrays. Is that correct?
ClearScript's general approach is to avoid data conversion and provide full access to .NET objects. There are exceptions, mainly numbers and strings, but host arrays are exposed "as is"; that is, they are not converted to script arrays.
Normally ClearScript exposes the members of a host object (fields, properties, and methods) as properties of the corresponding JavaScript "proxy" object. Additionally, if a host object implements IList, as arrays do, ClearScript also exposes its valid indices, enabling JavaScript's familiar
So yes, if you use JavaScript's
Consider applying the
Another possibility might be to override the built-in helper with one that supports host arrays.
Cheers!
It looks like you're asking about host (.NET) arrays rather than JavaScript arrays. Is that correct?
ClearScript's general approach is to avoid data conversion and provide full access to .NET objects. There are exceptions, mainly numbers and strings, but host arrays are exposed "as is"; that is, they are not converted to script arrays.
Normally ClearScript exposes the members of a host object (fields, properties, and methods) as properties of the corresponding JavaScript "proxy" object. Additionally, if a host object implements IList, as arrays do, ClearScript also exposes its valid indices, enabling JavaScript's familiar
foo[123]
syntax for element access.So yes, if you use JavaScript's
for...in
statement to iterate over a host array, you'll get both its elements and its members, and it does appear that Handlebars's each
helper works this way.Consider applying the
each
helper not directly to a host array but to the output of a conversion function:function convertArray(hostArray) { var result = []; for (var i = 0; i < hostArray.Length; i++) result.push(hostArray[i]); return result; }
Cheers!