/ Published in: JavaScript
The closest to a generic List in javascript.
When calling constructor - new List(Module) - add model in constructor parameter
When calling constructor - new List(Module) - add model in constructor parameter
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
/******************/ /*** List class ***/ /******************/ (function () { function List(type) { var _type = type.Type; var _list = {}; var _count = 0; this.Add = function (obj) { /// <summary>Adds an object to the end of the List</summary> if (obj.Type === _type) { _list[obj.Id] = obj; _count++; } else { $.error("Cannot convert source type (" + obj.Type + ") to target type (" + _type + ")"); } }; this.Get = function (id) { /// <summary>Get object by id</summary> /// <param name="id">The id of the object wich to be find</param> /// <returns type="object">Returns the requested object if exist</returns> if (_list[id] != undefined && _list[id] != null) return _list[id]; return null; }; this.GetAt = function (index) { /// <summary>Get object by index</summary> /// <param name="id">The index of the object wich to be find</param> /// <returns type="object">Returns the requested object if exist</returns> if (_list[index] != undefined && _list[index] != null) return _list[index]; return null; }; this.GetAll = function (loop) { /// <summary>Get objects in collection</summary> /// <param name="loop">The function loop the return to</param> /// <returns type="object">Returns the collection of objects</returns> for (var item in _list) { loop(_list[item]); } }; this.Remove = function (id) { /// <summary>Remove the object with the current id from the List</summary> /// <param name="id">The id of the object wich to be removed</param> delete _list[id]; _count--; }; this.RemoveAt = function (index) { /// <summary>Remove the object at the index from the list</summary> /// <param name="index">The index from the list where the object wich to be removed</param> delete _list[index]; _count--; }; this.Length = function () { /// <summary>Get length of the collection</summary> /// <returns type="object">Returns the length of the collection</returns> return _count; }; } window.List = List; } (window)) /********************/ /*** Module model ***/ /********************/ (function (window) { var type = "Module"; function Module(id) { this.Type = type; this.Id = id; } Module.Type = type; window.Module = Module; } (window));