Array對象用於在單個的變量中存儲多個值javascript
建立Array對象的語法:java
new Array(); new Array(size); new Array(element0, element1, ..., elementn);
參數 size 是指望的數組元素個數。返回的數組,length 字段將被設爲 size 的值。chrome
參數 element ..., elementn 是參數列表。當使用這些參數來調用構造函數 Array() 時,新建立的數組的元素就會被初始化爲這些值。它的 length 字段也會被設置爲參數的個數。express
若是調用構造函數 Array() 時沒有使用參數,那麼返回的數組爲空,length 字段爲 0。數組
當調用構造函數時只傳遞給它一個數字參數,該構造函數將返回具備指定個數、元素爲 undefined 的數組。瀏覽器
ECMAScript3作出規定,可使用instanceo操做符來檢測數組函數
<script type="text/javascript"> var nums=["one","two","three"]; //instanceof 若是檢測是數組,返回true;若果不是數組,false console.log(nums instanceof Array)//true console.log(typeof nums)//object </script>
toLocaleString()、toString()和valueOf()方法。oop
實例:post
<script type="text/javascript"> var nums=["one","two","three"]; //調用toLocaleString()與toString()方法相同 console.log(nums.toLocaleString())//one,two,three //調用valueOf()方法,返回的仍是這個數組。 //因爲alert()要接收一個字符串參數,因此它會在後臺調用toString()方法 alert(nums.valueOf());//one,two,three console.log(nums.valueOf())//["one", "two", "three"] //調用toString()方法,會返回數組中每一個值的字符串形式拼接的以逗號分隔的字符串; console.log(nums.toString())//one,two,three //默認都會以逗號分隔字符串的形式返回數組項 </script>
屬性 | 描述 |
---|---|
constructor | 返回對建立此對象的數組函數的引用。 |
length | 設置或返回數組中元素的數目。 |
prototype | 使您有能力向對象添加屬性和方法。 |
方法 | 描述 |
---|---|
concat() | 鏈接兩個或更多的數組,並返回結果。該方法不會改變現有的數組,而僅僅會返回被鏈接數組的一個副本。 |
join() | 把數組的全部元素放入一個字符串。元素經過指定的分隔符進行分隔。 |
pop() | 刪除並返回數組的最後一個元素,若是數組已經爲空,則 pop() 不改變數組,並返回 undefined 值 |
push() | 向數組的末尾添加一個或更多元素,並返回新的長度。它直接修改 arrayObject,而不是建立一個新的數組spa 提示:要想數組的開頭添加一個或多個元素,請使用 unshift() 方法。 |
slice() | 從某個已有的數組返回選定的元素,返回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。 |
shift() | 刪除並返回數組的第一個元素 說明: 若是數組是空的,那麼 shift() 方法將不進行任何操做,返回 undefined 值。該方法不建立新數組,而是直接修改原有的 arrayObject。 |
unshift() | 向數組的開頭添加一個或更多元素,並返回新的長度。 |
sort() | 對數組的元素進行排序 |
splice() | 刪除元素,並向數組添加新元素。 |
toSource() | 返回該對象的源代碼。 |
toString() | 把數組轉換爲字符串,並返回結果。 |
toLocaleString() | 把數組轉換爲本地字符串,並返回結果。arrayObject 的本地字符串表示。 說明: 首先調用每一個數組元素的 toLocaleString() 方法,而後使用地區特定的分隔符把生成的字符串鏈接起來,造成一個字符串。 |
reverse() | 顛倒數組中元素的順序。 |
valueOf() | 返回數組對象的原始值 |
語法
arrayObject.concat(arrayX,arrayX,......,arrayX)
參數 | 描述 |
---|---|
arrayX | 必需。該參數能夠是具體的值,也能夠是數組對象。能夠是任意多個。 |
返回值
返回一個新的數組。該數組是經過把全部 arrayX 參數添加到 arrayObject 中生成的。若是要進行 concat() 操做的參數是數組,那麼添加的是數組中的元素,而不是數組。
實例1:將參數鏈接到數組a中;
<script type="text/javascript"> var a = [1,2,3]; document.write(a.concat(4,5)); </script>
輸出:
1,2,3,4,5
實例2:兩個數組鏈接
<script type="text/javascript"> var array_a=[1,2,3]; var array_b=[4,5]; console.log(array_a.concat(array_b));//[1, 2, 3, 4, 5] </script>
2. slice()方法,它可以基於當前數組中的一個或多個項建立一個新數組。
arrayObject.slice(start,end)
slice()方法接收一個或兩個參數,即要返回的項的起始和結束位置;若是傳入一個參數,則返回當前傳入參數的位置到當前數組結束位置的新數組;若是傳入兩個參數,則返回起始和結束位置的新數組,但不包括結束位置的項,即前閉後開。注意:slice()不會影響原始數組。
返回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。
示例:
<script type="text/javascript"> var colors = ["red","green","blue","yellow","purple"]; var colors2 = colors.slice(1); alert(colors2);//green,blue,yellow,purple var colors3 = colors.slice(1,3); alert(colors3);//green,blue 不包括位置3的"yellow" </script>
拓展:若是slice方法的參數中有負數,則用數組的長度加上該負數來肯定起始和結束位置
<script type="text/javascript"> var colors = ["red","green","blue","yellow","purple"]; var colors2 = colors.slice(-2,0); alert(colors2);//沒有任何輸出 var colors3 = colors.slice(-2,-1);//至關於colors.slice(colors.length-2,colors.length-1);即colors.slice(3,4); alert(colors3);//yellow </script>
3.splice()方法
語法
arrayObject.splice(index,howmany,item1,.....,itemX)
注意:splice()方法始終返回一個數組,該數組包含從原始數組中刪除的項,若是沒有刪除任何項,則返回一個空數組。
示例:
<script type="text/javascript"> var nums=["one","two","three"]; //----------1.splice(index,howmany) 刪除-------------- var remove = nums.splice(0,1);//刪除數組的第一項"one" alert(nums);//two,three alert(remove );//one //若是刪除的項的起始位置大於數組的長度 var remove1 = nums.splice(3,1); alert(nums);//one,two,three(不作改變) alert(remove1);//沒有輸入 //同時若是刪除項的起始位置爲負數 var remove2 = nums.splice(-1,1);//至關於nums.splice(nums.length-1,1);即nums.splice(2,1) alert(nums);//one,two alert(remove2);//three //-----------2.splice(index,0,item...)插入-------------- var remove3 = nums.splice(1,0,"2","3"); alert(nums);//one,2,3,two,three alert(remove3 );//空數組,由於splice的第二個參數是0 //----------3.splice(index,hwomany,item1,item2,...)替換-------------- var colors = ["red","green","blue"]; var replace = colors.splice(1,1,"red","purple"); alert(colors);//red,red,purple,blue alert(replace);//green </script>
for循環:
(initialization; expression; post-loop-expression) statementfor
例子:
iCount = 6; for (var i = 0; i < iCount; i++) { alert(i); }
for-in 語句
(property expression) statementforin
例子:
for (sProp in window) { alert(sProp); }
ECMAScript5提供5個迭代的方法。每一個方法都接收兩個參數:要在每一項上運行的函數和(可選的)運行該函數的做用域對象。傳入方法中的函數接收三個參數:數組項的值、該項在數組中的位置和數組對象自己。
every():對數組中的每一項運行給定函數,若是該函數對每一項都返回true,則返回true;
filter():對數組中的每一項運行給定函數,返回該函數會返回true的項組成的數組;
forEach():對數組中的每一項運行給定函數,這個方法沒有返回值;
map():對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組;
some():對數組中的每一項運行給定函數,若是該函數對任意一項返回true,則返回true。
示例:
<script type="text/javascript"> var numbers = [1,2,3,4,5,4,3,2,1]; //every循環numbers,判斷數組numbers中的每一項是否都大於2 var everyResult = numbers.every(function(item,index,array){ return (item>2); }); alert(everyResult);//false //some循環numbers,判斷數組numbers中項是否有大於2的項,若是有則返回true,不然返回false var someResult = numbers.some(function(item,index,array){ return (item>2); }); alert(someResult);//true //filter循環numbers,判斷數組numbers中大於2的項,將數組中大於2的項返回組成數組返回,若是沒有則返回空數組 var filterResult = numbers.filter(function(item,index,array){ return (item>2); }); alert(filterResult);//3,4,5,4,3 //forEach循環numbers,將數組numbers中的每一項都加1 var forEachResult = numbers.forEach(function(item,index,array){ array[index] = item+1; }); alert(numbers);//2,3,4,5,6,5,4,3,2 //map循環numbers,將數組numbers中的每一項都乘以2,並返回計算後的數組 var mapResult = numbers.map(function(item,index,array){ return item*2; }); alert(mapResult);//2,4,6,8,10,8,6,4,2 </script>
--------------分割線 2017/ 04/06