1. 程式人生 > >jQuery自定義陣列操作類(類似於List集合的增刪改查)

jQuery自定義陣列操作類(類似於List集合的增刪改查)

js外部檔案,前提需要引入jquery類庫。

封裝類程式碼如下:

(function ($) {

    $.List = function () {

        var _list = new Array();
        //外部為陣列賦值
        this.GetDataSource = function
(arr) {             if (IsArrayType(arr)) {                 _list = arr;             } else {                 alert(
"指定元素非陣列型別,賦值失敗!");             }         };         //新增一個元素         this.Add = function (arg) {            
if (arg) {                 _list.push(arg);             } else {                 alert("引數錯誤,新增元素失敗!");             }             return _list;         };         //刪除指定索引的元素         this.RemoveAt = function (index) {             if (IsArrayIndex(index) && index < _list.length) {                 var i;                 var arr = new Array();                 for (i = 0; i < _list.length; i++) {                     if (i != index) {                         arr.push(_list[i]);                     }                 }                 _list = arr;                 return _list;             }             else {                 alert("未獲取到設定物件的例項,刪除元素失敗!");             }         };         //按照指定的分割符顯示出所有元素         this.Split = function (arg) {             arg = arg || ",";             var i, res;             res = "";             if (_list.length > 0) {                 for (i = 0; i < _list.length; i++) {                     res += _list[i].toString() + arg;                 }                 return res.substr(0, (res.length - arg.toString().length));             } else {                 return "";             }         };         //外部呼叫直接返回當前陣列實力         this.ToArray = function () {             return _list;         };         //設定指定索引處的值為指定值         this.Update = function (index, value) {             if (IsArrayIndex(index) && index < _list.length) {                 _list[index] = value;             }             return _list;         };         //清空所有元素         this.RemoveAll = function () {             _list.splice(0, _list.length);             return _list;         };         //根據傳入的值獲取第一次出現在陣列中的下標         this.IndexOf = function (value) {             if (value) {                 var i;                 for (i = 0; i < _list.length; i++) {                     if (_list[i] == value) {                         return i;                     }                 }             }             return -1;         };         //獲取陣列長度         this.Size = function () {             return _list.length;         };         //移除陣列中重複的項         this.RemoveRepeat = function () {             _list.sort();             var rs = [];             var cr = false;             for (var i = 0; i < _list.length; i++) {                 if (!cr)                     cr = _list[i];                 else if (cr == _list[i])                     rs[rs.length] = i;                 else                     cr = _list[i];             }             for (var i = rs.length - 1; i >= 0; i--)                 this.RemoveAt(rs[i]);             return _list;         };         //對數字陣列元素排序,引數:0升序1降序         this.SortNumber = function (f) {             if (!f) f = 0;             if (f == 1) return _list.sort(function (a, b) { return b - a; });             return _list.sort(function (a, b) { return a - b; });         };         //私有方法         //判斷正確的陣列下標         function IsArrayIndex(index) {             var reg = /^\d+$/;             if (reg.test(index))                 return true;             else                 return false;         }         //判斷當前物件是否為陣列物件         function IsArrayType(arr) {             if (typeof arr == 'object' && typeof arr.length == 'number')                 return true;             else                 return false;         }     }; //結束List的構造方法 })(jQuery);
View Code

頁面呼叫時需要引入兩個js檔案:

<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
    <script src="js/jquery.array.js" type="text/javascript"></script>
    <script type="text/javascript">

        $(function () {
            var myList = new $.List();
            myList.Add(1);
            myList.Add("1906-07-08");
            myList.Add("hellow world");
            myList.RemoveAt(0);
            myList.Update(0, "11111111");
            //alert("陣列被修改內容後的結果:" + myList.Split("|"));
            myList.RemoveAll();
            var arr = myList.ToArray();
            //alert("陣列全部被刪除後結果:" + arr);
            //alert("陣列1當前長度:" + myList.Size());
            var myList2 = new $.List();
            myList2.Add(3);
            myList2.Add(1);
            myList2.Add(45);

            myList2.Add(21);
            myList2.Add(-9);
            myList2.Add(1);

            alert("第二個例項陣列結果:" + myList2.ToArray());
            myList2.RemoveRepeat();
            alert("去重後第二個例項陣列結果:" + myList2.ToArray());
            alert("去重後第二個例項陣列長度:" + myList2.Size());
            myList2.SortNumber(1);
            alert("排序後的陣列:" + myList2.ToArray());
            var arr3 = ["aaa", "bbb", "ccc", "ddd", "eee"];
            var arr4;
            myList2.GetDataSource(arr3);
            alert("重新賦值後結果:"+myList2.ToArray());

        });
      

    </script>
</head>
View Code