<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ?? Array(數組)是JavaScript中較為復雜的數據類型,同Java、C#、VB等程序語言的數組相比,Javascript數組中的元素不必為相同的數據類型,可以在數組每個元素上混合使用數字、日期、字符串、Object,甚至添加一個嵌套數組。 ## 一、創建數組 ?? 1、var arr1 = new Array(); /var? arr2 = new Array(length); /var arr3 = new Array(element1,element2...); var arr4 = [element1,element2,...];??? length是一個指定數組長度的整數。element是一系列任意值。 ?? 2、變長數組:JavaScript的數組長度可以任意擴展。 ~~~ var arr = new Array(2); arr[0] = "Jan"; arr[1] = "Feb"; arr[2] = "Mar"; alert(arr.length); //輸出3 ~~~ 3、元素可以為空 ~~~ var arr = new Array(); arr[0] = "Jan"; arr[2] = "Mar"; alert(arr.length); //輸出3 alert(arr[1]); //undefined ~~~ 但是document.write(arr);將輸出:Jan,,Mar 4、使用Array()時的注意事項:不能將另外一個數組作為參數傳遞給該函數,否則是創建了一個僅有一個元素的復合數組 ~~~ var arr1 = ['a','b','c']; var arr2 = new Array(arr1); document.write(arr2+"<br/>"); document.write(arr2[0]+"<br/>"); document.write(arr2[1]+"<br/>"); document.write(arr2[0] === arr1); ~~~ 結果: ![](https://box.kancloud.cn/2016-08-30_57c54ec7b4f3b.jpg) 但是使用Object()則不然,它創建了一個對象的副本。 ~~~ var obj = {a:1,b:2,c:3}; var obj2 = new Object(obj); document.write(obj2+"<br/>"); document.write(obj2.a+"<br/>"); document.write(obj === obj2); ~~~ 結果: ![](https://box.kancloud.cn/2016-08-30_57c54ec7c9d93.jpg) ## 二、實現和使用多維數組 ?? 在Javascript中不可以直接聲明多維數組,但是可以將數組嵌套實現多維數組。 ~~~ var multiArr = new Array(new Array("one","two"),new Array(1,2)); document.write(multiArr+"<br/>"); document.write(multiArr[0]+"<br/>"); document.write(multiArr[1][0]+"<br/>"); document.write("循環輸出數組元素:<br/>"); for(var i = 0; i < multiArr.length; i++) { for(var j = 0; j < multiArr[i].length;j++) { document.write(multiArr[i][j]+"<br/>"); } } ~~~ 結果: ![](https://box.kancloud.cn/2016-08-30_57c54ec7df4e6.jpg) ## 三、使用Array API處理數組 ?? 1、Array類的常見方法和屬性: ![](https://box.kancloud.cn/2016-08-30_57c54ec7f402f.jpg) ![](https://box.kancloud.cn/2016-08-30_57c54ec81eeb1.jpg) ?? 2、Array類的靜態屬性: CASEINSENSITIVE :在排序中,此常數指定不區分大小寫。 DESCENDING:在排序中,此常數指定降序排序。 NUMERIC:在排序中,此常數指定數字(不是字符串)排序。 RETURNINDEXEDARRAY:指定排序返回索引 UNIQUESORT:在排序方法中,此常數指定唯一的排序要求。 3、示例 ~~~ var arr = new Array("Jody"); document.write("原數組:"+arr+"<br/>"); arr.push("Mary"); //新增一個元素 document.write("新增一個元素:"+arr.toString()+"<br/>"); arr.push("Marcell"); document.write(arr.toString()+"<br/>"); arr.shift(); //刪除第一個元素 document.write("刪除第一個元素:"+arr.toString()+"<br/>"); arr.reverse(); //反轉元素 document.write("反轉元素:"+arr.toString()+"<br/>"); var arr1 = ["Judy","Jody"]; var arr3 = arr1.concat(arr); //兩個數組相連創建一個新數組 document.write("兩個數組相連創建一個新數組:"+arr3.toString()+"<br/>"); document.write("join()方法:"+arr3.join("-")+"<br/>"); var arr4 = arr3.slice(0,2); document.write("slice()方法返回子數組:"+arr4.join("-")+"<br/>"); document.write("splice()方法刪除元素:"+arr3.splice(0,2)+"<br/>"); ~~~ 結果: ![](https://box.kancloud.cn/2016-08-30_57c54ec835aa7.jpg) ## 四:ECMAScript 5 新增的方法(在IE中,只有IE9支持) ?? 1、every(callbackFunction[,thisObject]):對數組的每一項執行測試函數,直到獲得對指定的函數返回false的項。 callbackFunction為定義的函數名,該函數有元素值、元素索引和Array對象三個參數;thisObject可選,是函數的this對象。 ?? 2、filter(callbackFunction[,thisObject]):對數組的每一項執行測試函數,根據函數結果構造一個新數組。所有數組元素對指定函數返回TRUE,則新數組中包含此元素,反之,不包含。 ?? 3、forEach(callbackFunction[,thisObject]):對數組中的每一項執行回調函數。參數同every()函數。 4、indexOf(seachElement[,fromIndex]):使用“===”運算符搜索數組中的項,并返回該值索引位置。seachElement是查找項,若沒有找到則返回-1;fromIndex是查找的起始位置。 5、Array.isArray(objArr):靜態方法,判斷指定的參數是否為數組。 6、lastIndexOf(seachElement[,fromIndex]):使用“===”運算符搜索數組中的項(從最后一項向前搜索),并返回該值索引位置。語法同indexOf()方法。 ? ?7、map(callbackFunction[,thisObject]):對數組的每一項執行測試函數,根據函數結果構造一個新數組,其中包含與原始數組中的每一項的函數結果對應的項。參數語義同every()函數。 ? 8、reduce(callbackFunction[,initialValue]):從左到右,使用函數比較數組中的兩個值,將兩個值刪除一個。callbackFunction是自定義的函數,包含前一個元素值、當前元素值、當前元素索引和Array對象。initialValue是第一次調用callbackFunction函數時的previous值(前一個元素值)。若不定義,第一次調用callbackFunction時前一個元素值是第一個元素值,當前值是第二個元素值;若定義了,則當前值是第一個元素值。 ? 9、refuceRight(callbackFunction[,initialValue]):從右到左,使用函數比較數組中的兩個值,將兩個值刪除一個。參數語義同reduce()。 ? 10、some(callbackFunction[,thisObject]):對數組中的每一項執行測試函數,直到返回true的項。 ## 五、數組的排序: ? ?sort([sortfunction]):用于對數組進行排序,sortfunction可選,用來定義數組元素排序的函數,若省略,元素按照ASCII字符順序進行升序排列,意味著不能對中文排序。 ? 1、默認的排序規則 ? ? ? 1.1 ? 排序區分大小寫,大寫優先于小寫(Z優先于a) ? ? ? 1.2 ? ?按升序排序(a優先于b) ? ? ? 1.3 ? ?數字字段按字符串形式排序,所以100優先于99,因為1的字符串值比9低。 ?2、自定義排序:定義sortfunction參數 ? ? ? 2.1 ?函數返回 -1表示傳遞的第一個參數比第二個參數小 ? ? ? 2.2 ??函數返回 0表示傳遞的第一個參數等于第二個參數 ? ? ? 2.3 ??函數返回 1表示傳遞的第一個參數比第二個參數大 ~~~ var arr = new Array("Tom","Tommy","John"); //按照ASCII順序升序排列 arr.sort(); document.write("按照ASCII順序升序排列:"+arr+"<br/>"); var sortFun = function(a,b) { if(a.length < b.length) return -1; if(a.length > b.length) return 1; if(a.length == b.length) return 0; } arr.sort(sortFun); document.write("按照自定義順序排列:"+arr+"<br/>"); ~~~ 結果: ![](https://box.kancloud.cn/2016-08-30_57c54ec8488e6.jpg) ## 六、創建和使用復合數組:在Javascript中可以使用Object和Array對象創建復合數組 ? 1、使用Object對象創建 ? ? ? ? var per = {sex:"male",age:28,birth:new Date(1980,7,5)}; ? ? ? ? document.write(per.sex) <=>?document.write(per['sex']) ;//類似于創建Javascript對象 ? 2、使用Array對象創建 ? ? ? ? var per = new Array(); ? ? ? ? per['sex'] = "male"; ? per['age'] = 28; ?per['birth'] = new Date(1980,7,5); ? ? ? ?以下方法則是錯誤的: ? ? ? ?var per = [sex:"male",age:28,birth:new Date(1980,7,5)]; ? ?? ? ?3、遍歷復合數組 ~~~ var per = new Array(); per['sex'] = "male"; per['age'] = 28; per['birth'] = new Date(1980,7,5); for(var i in per) { document.write(i+" : "+per[i]+"<br/>"); } ~~~ 結果: ![](https://box.kancloud.cn/2016-08-30_57c54ec85b659.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看