public static byte[] ToByteArray(this ArrayInstance arrayInstance) { int length = (int)arrayInstance.GetLength(); byte[] result = new byte[length]; for (int i = 0; i < length; ++i) { result[i] = (byte)arrayInstance.Get(i.ToString()).AsNumber(); } return(result); }
public static List <T> SerializeArray <T>(ArrayInstance instance) { var arrayLength = TypeConverter.ToInt32(instance.Get("length")); var mediaList = new List <T>(); for (var i = 0; i < arrayLength; ++i) { string propName = i.ToString(); var isOwnProperty = instance.HasProperty(propName); if (isOwnProperty) { // get and deserialize js object var jsValue = instance.Get(propName); var jObj = JObject.FromObject(jsValue.ToObject()); mediaList.Add(jObj.ToObject <T>()); } } return(mediaList); }
public static void ForEach(this ArrayInstance self, Action <int, JsValue> callback) { for (int i = 0;; i++) { string index = i.ToString(); if (!self.HasOwnProperty(index)) { break; } callback(i, self.Get(index)); } }
private string SerializeArray(ArrayInstance value) { EnsureNonCyclicity(value); _stack.Push(value); var stepback = _indent; _indent = _indent + _gap; var partial = new List <string>(); var len = TypeConverter.ToUint32(value.Get(CommonProperties.Length, value)); for (int i = 0; i < len; i++) { var strP = Str(TypeConverter.ToString(i), value); if (strP.IsUndefined()) { strP = "null"; } partial.Add(strP.ToString()); } if (partial.Count == 0) { _stack.Pop(); return("[]"); } string final; if (_gap == "") { var separator = ","; var properties = System.String.Join(separator, partial.ToArray()); final = "[" + properties + "]"; } else { var separator = ",\n" + _indent; var properties = System.String.Join(separator, partial.ToArray()); final = "[\n" + _indent + properties + "\n" + stepback + "]"; } _stack.Pop(); _indent = stepback; return(final); }