js中數組的操作


1、length 

計算數組的長度

var arr = ["aaa","bbb"];
alert(arr.length);

2、索引

通過索引獲取對應值,同時也可以改變索引對應的值

var arr = ["aaa","bbb"];
alert(arr[0]);//彈出aaa
arr[0] = "111";
alert(arr[0]);//彈出111

3、indexOf

返回指定元素的位置,若元素不存在返回-1

var arr = ["aaa","bbb",111];
alert(arr.indexOf("aaa");//彈出0
alert(arr.indexOf("111");//彈出-1,"111"與111是不同的元素

4、slice

接受一個或兩個參數,參數對應的是要返回項的起始位置和結束位置,若只有一個參數,該方法返回從參數指定位置到數組結尾的所有項,如果有兩個參數則返回起始位置到結束位置之間的項但不包括結束位置項,返回的結果是一個新的數組,原數組不變

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
alert(arr.slice(0, 3)); // 從索引0開始,到索引3結束,但不包括索引3: ['A', 'B', 'C']
alert(arr.slice(3)); // 從索引3開始到結束: ['D', 'E', 'F', 'G']

5、push

向數組末尾添加若干元素,返回添加元素后數組的長度

var arr = [1,2];
alert(arr.push('a','b'));//返回數組的長度2

6、pop

刪除數組末尾最后一個元素,返回被刪除的元素,若數組為空則返回undefined

var arr = [1,2,3];
alert(arr.pop());//返回被刪除的元素3
var arr1 = [];
alert(arr1.pop());//返回undefined

7、unshift

在數組頭部添加若干元素,返回添加元素后數組的長度

var arr = [1,2,3];
alert(arr.unshift("a","b"));//返回數組的長度5

8、shift

刪除數組頭部的第一個元素,並返回被刪除的元素,若數組為空則返回undefined

var arr = [1,2,3];
alert(arr.shift());//返回頭部被刪除的項1

9、sort

對數組進行排序,返回排序以后的數組,默認把所有元素轉化為字符之后再進行排序,排序以后會改變原數組

var arr = ["3","2",11];
alert(arr.sort());//返回11,2,3

可以通過一個自定義的比較函數來進行排序,比較函數接收兩個參數,如果第一個參數應該位於第二個參數之前應該返回負數,如果第一個參數應該位於第二個參數之后應該返回正數,若相等返回0,排序之后會改變原數組

function compare(val1,val2){
    return val1-val2;
}
var arr = [3,2,9,4];
alert(arr.sort(compare));//返回2,3,4,9

10、reverse

對數組中的數據進行反轉,返回反轉后的數組

var arr = ["333","222"];
alert(arr.reverse());

11、splice

從指定位置刪除若干元素,然后再從該位置添加若干元素,結果返回被刪除的元素,第一個參數表示起始刪除的位置,第二個參數表示要刪除元素的個數,之后的元素表示要添加的元素

var arr = ["a","b","c"];
alert(arr.splice(1,2,"d","e"));//從位置1開始刪除2個元素,在1位置添加"d","e"兩個元素,返回"b","c"
alert(arr);//arr數組變為a,d,e
alert(arr.splice(0,3));//從位置0開始,刪除3個元素,返回"a","d","e"
alert(arr);//arr數組為空

11、concat

把當前數組與另一個數組連接起來,並返回新的元素,原來的數組不被改變,concat可以接收任意個元素和數組,並把數組拆開放入新的數組中

var arr = ["a","b","c"];
alert(arr.concat([1,2,3]));//數組arr不變,返回["a","b","c",1,2,3]
alert(arr.concat([1,2,[3,4]]));//返回["a","b","c",1,2,3,4]

12、join  

將數組中的每一個元素用指定的字符串連接起來,返回字符串

var arr = ["a","b","c"];
alert(arr.join(","));//返回字符串'a,b,c'

 13、map

對數組中的每一項運行函數,返回函數運行結果組成的數組,函數的參數是一個函數,而該函數接收三個參數:數組當前值,數組索引、數組

var arr = [1,2,3,-1];
alert(arr.map(function(x) {
      return x * x;
}
));//返回1,4,9,1

 14、reduce

從數組的第一項開始,逐個遍歷到最后,函數接受兩個參數,一個是在數組上調用的函數和歸並的初始值(可選),而調用數組的函數接受四個參數:前一個值、當前值、當前值索引、當前數組,第一次調用時,前一個值是數組第一項,當前值是數組第二項

var arr = [1,2,3,-1];
var result = arr.reduce(function(prev,cur,index,array){
     return prev+cur
})
alert(result);//返回5

 15、filter

對數組中的每一項運行函數,返回該函數返回true的元素組成的數組

var arr = [1,-3,2,-4,-6];
var newArr = arr.filter(function(x){
    if(x>=0){
        return true;
    }else{
        return false;
    }
})
alert(newArr)//返回1,2

 16、toString

該方法返回由數組中每個值的字符串以逗號分隔而拼接的字符串,數組的每一項調用的是toString

var arr = [1,2];
alert(arr.toString());//返回1,2

17、valueOf

調用該方法返回的依舊是數組

var arr = [1,2];
alert(arr.valueOf());//alert返回的都是字符串,故返回1,2,而arr.valueOf()是數組
alert(arr.valueOf() instanceof Array);//返回true

18、toLocaleString

該方法返回一個數組值以逗號分隔的字符串,與toString不同的是數組的每一項調用的是toLocaleString

var arr = [1,2];
alert(arr.toLocaleString());//返回1,2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM