這次帶給大家JavaScript的陣列使用集合,JavaScript陣列使用集合的注意事項有哪些,下面就是實戰案例,一起來看一下。
1.join() 將陣列中的所有元素轉換為字串並連接在一起
var a=[1,2,3,4]; a.join(); //"1,2,3,4"
2.reverser() 將陣列中的元素顛倒順序,傳回逆序的陣列。
var a[1,2,3,4]; a.reverse(); //[4,3,2,1]
3.sort() 將陣列中的元素排序並傳回排序後的陣列。
當不帶參數呼叫sort()時,陣列元素會以字母表順序排序。
var a=['ant','Bug','cat','Dog']; a.sort(); //["Bug", "Dog", "ant", "cat"] a.sort(function(s,t){ var s1=s.toLowerCase(); var t1=t.toLowerCase(); if(s1<t1) return -1; if(s1>t1) return 1; return 0});//["ant", "BUg", "cat", "Dog"]
4.concat() 建立並傳回一個新數組,它的元素包括呼叫concat()的原始數組的元素和concat()的每個參數。如果這些參數中的任何一個本身是數組,則連接的是數組元素,而非數組本身。
var a=[1,2,3];a.concat(4,5);// [1, 2, 3, 4, 5]a.concat([4,5]);// [1, 2, 3, 4, 5]a.concat([4,5],[6,7]);// [1, 2, 3, 4, 5, 6, 7]a.concat([4,5],[6,[8,7]]);// [1, 2, 3, 4, 5, 6,[8,7]]
5.slice() 傳回指定陣列的片段或子陣列。它的兩個參數分別指定了片段的開始和結束的位置。傳回的陣列包含第一個參數指定的位置和所有到但不含第二個參數指定的位置之間的所有資料元素。
如果只指定一個參數,則傳回的陣列包含從開始位置到陣列結尾的所有元素。
如果參數中出現負數,它表示相對於陣列中最後一個元素的位置。例如:參數-1指定了最後一個元素,而-3指定了倒數第三個元素。
注意,slice()不會修改呼叫的陣列。
var a=[1,2,3,4,5];a.slice(0,2);//[1, 2]a.slice(3);//[4, 5]a.slice(1,-1);//[2, 3, 4]a.slice(-3,-2);//[3]
6.splice() 在陣列中插入或刪除元素的通用方法。不同於slice()和concat(),splice()會修改呼叫的陣列。注意:splice()和slice()擁有非常相似的名字,但它們的功能卻又本質的區別。
splice()能夠從陣列中刪除元素,插入元素到陣列中或同事完成這兩種操作。在插入或刪除點之後的陣列元素會根據需要增加或減少它們的索引值,因此陣列的其他部分仍然保持連續。 splice()的第一個參數指定了插入和(或)刪除的起始位置。第二個參數指定了應該從陣列中刪除的元素的個數,如果省略第二個參數,則從起始點開始到陣列結尾的所有元素都會被刪除。 splice()傳回一個由刪除元素組成的數組,或者如果沒有刪除元素就傳回一個空數組。
var a=[1,2,3,4,5,6,7,8];a.splice(4);//返回[[5, 6, 7, 8]],a是[1, 2, 3, 4]a.splice(1,2)//返回[2, 3],a是[1, 4, 5, 6, 7, 8]a.splice(1,1);//返回[2],a是 [1, 3, 4, 5, 6, 7, 8]
7.push()和pop()
push()在陣列尾部新增一個或多個元素。
pop()刪除陣列的最後一個元素。
8.unshift()和shift()
unshift()在陣列頭部新增一個或多個元素。
shift()刪除陣列的第一個元素。
9.toString()和toLocaleString()
[1,2,3].toString();//"1,2,3"[1,[2,'c']].toString();//"1,2,c"
toLocaleString()是toString()方法的局部版本。它呼叫元素的toLocaleString()方法將每個陣列元素轉換為字串,並使用本地化分隔符號將這些字串連接起來產生最終的字串。
10.forEach()從頭到尾遍歷數組,為每個元素呼叫指定的函數。
傳遞的函數做為forEach()的第一個參數,然後forEach()使用三個參數呼叫函數:陣列元素,元素的索引和陣列的本身。
var data=[1,2,3,4,5];//计算数组元素的和值var sum=0; data.forEach(function(value){ sum+=value }); sum //15//每个数组元素的值加1data.forEach(function(value,index,arr){ arr[index]=value+1; }); data //[2, 3, 4, 5, 6]
11.map()將呼叫的陣列的每個元素傳遞給指定的函數,並傳回一個數組,它包含函數的傳回值。
注意:傳遞給mao()的函數應該有回傳值。 map()傳回的是新數組,不修改原來的數組。如果原來的陣列是稀疏數組,則傳回的也是相同方式的稀疏數組,它們具有相同的長度,相同的缺失元素。
var a=[1,2,3];var b=a.map(function(value){return value*value; }); b// [1, 4, 9]
12 filter()傳回符合條件的陣列元素
var a=[1,2,3,5];var b=a.filter(function(value){return value>2; }); b // [3, 5]
13.every()和some()
陣列的邏輯判定,它們對陣列元素應用指定的函數進行判定,回傳true或false。
every()即數組中所有元素都符合篩選條件,則傳回true.
some()即數組中存在元素符合篩選條件,則傳回true;
var a =[1,2,3,4,5]; a.every(function(value){return value<10; }) //true a中所有元素都小于10a.every(function(value){return value%2===0; });//false a中不是所有元素都是偶数a.some(function(value){return value%2===0; })//true a中存在偶数
reduce()和reduceRight()
使用指定的函數將陣列元素進行組合,產生單一值。
reduce()需要兩個參數。
第一個是執行化簡操作的函數。化簡函數的任務就是用某種方法把兩個值組合或化簡為一個值,並回傳化簡後的值。第二個(可選)參數是一個傳遞給函數的初始值。
reduceRight()和reduce()使用方法一致,不同的是它按照數組索引從高到低(從右向左)處理數組。
var a=[1,2,3,4,5];var sum=a.reduce(function(x,y){return x+y;},0); sum //15 数组求和var max=a.reduce(function(x,y){return x>y?x:y}); max // 5求最大值
indexOf()和lastIndexOf()
indexOf()第一個符合條件的值的索引,如果沒有,傳回-1
lastIndexOf()最後一個符合條件的值的索引,如果沒有,返回-1
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
#以上是JavaScript的陣列使用集合的詳細內容。更多資訊請關注PHP中文網其他相關文章!