js對數組的常用操作


在js中對數組的操作是經常遇到的,我呢在這就列一下經常用到的方法

刪除數組中的元素:

1.delete方法:delete刪除的只是數組元素的值,所占的空間是並沒有刪除的

代碼:

var arr=[12,23,44,5,6,23,43,34];
console.log(arr.length);
console.log(arr);
delete arr[1];
console.log(arr);
console.log(arr[1]);
console.log(arr.length);

 

運行結果在這里:

這個就很直觀的看得出來,刪除后,數組的長度前后是並沒有變化的。被刪除的元素位置還是留在那,讀取到該下標元素的時候,元素的值為undefined。

2.splice方法:該方法刪除數組指定的元素,並且可以給數組添加新的元素,即實現刪除/替換數組的某項元素。splice(下標,刪除的長度,替換的新元素)

arr.splice(index,length,items,items,...);

注意:如果不添加item的時候,就是數組的刪除,會改變原數組的長度

代碼如下:

var arr=[12,23,44,5,6,23,43,34];
    console.log(arr.length);
    arr.splice(1,2);//從下標為1的元素開始刪除,刪除的長度為2即23,44兩個數
    console.log(arr);
    console.log(arr.length);

運行后的結果:

從運行結果中可以看得出來,原數組中的23,44兩個元素被刪除了,數組長度由原來的8變成了6

shift方法:刪除第一個數組元素,不帶參數,數組的長度會減1,並且返回的是數組的第一個元素

  arr.shift();

  注意:如果數組是空的,那么 shift() 方法將不進行任何操作,返回 undefined 值。請注意,該方法不創建新數組,而是直接修改原有的 arrayObject

pop方法:刪除數組的最后一個元素,數組的長度會減1,並且返回的是數組的最后一個元素(通過alert()可以查看出返回的是哪個值)

 arr.pop();

var arr=['a','b','c','d','e','f'];
            alert(arr.shift());
            arr.pop();
            alert(arr.pop());
            console.log(arr);

 

增加數組:

 /*****檢測方法都是和上面的類似的,下面這些我就羅列測試結果截圖了*****/

unshift(): 方法:在數組的第一個元素前面增加一個元素,數組的長度會加1,該方法會改變原來數組的長度.

arr.unshift(newElement)

push():在數組的結尾追加元素,可以追加多個元素,該方法會改變原來數組的長度 

  arr.push(newElement,...);

注意:追加的元素最好是簡單類型的字面量,不要是數組,如果是數組的,追加過來的元素會在該位置顯示為一個數組,元素就會變成了二維數組,甚至多維數組

concat():合並兩個或多個數組,該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本

數組排序:

sort():該方法是對數組進行升序排序,規則是按ascii表的規則來的

  arr.sort();

reverse():對數組進行翻轉操作

  arr.reverse();

  js模擬原理實現的代碼:

var arr = ["諸葛亮","安琪拉","狄仁傑","后羿","荊軻","娜可露露","魯班"];
//思路:實現方法:1.操作原數組,讓原數組第一位和最后一個位調換位置,以此類推。
    for(var i=0;i<arr.length/2;i++){
        //讓前后數組中的元素交換位置。
        var temp = arr[i];
        //前面項和對應的后面項交換位置。(arr.length-1-i = 倒數第i+1項)
        arr[i] = arr[arr.length-1-i];
        arr[arr.length-1-i] = temp;
    }
    console.log(arr);

 

檢測是否為數組:

 arr.isArray(obj):該方法適用於確定傳遞的值是否為Array,是Array返回的則是true,否的話返回的是false

Array.isArray([1, 2, 3]);  // true
Array.isArray({foo: 123}); // false
Array.isArray("foobar");   // false
Array.isArray(undefined);  // false

intanceof 同樣也是檢測使用的  

  語法:a instanceof Object  

  返回的值是true or false;

其他方法:

slice():從當前數組中截取一個新的數組,不影響原來的數組,參數start從0開始,end從1開始(從第一個元素開始)

  arr.slice(star,end);

注意:如果slice里面沒有定義結束的位置的話,那么截取的元素就從被截取元素的開始位置一直截取到結束位置

arr.join():把數組轉換成為字符串,可以自己定義分隔符 arr.join("自定義分隔符如&"),默認是逗號隔開,如果要沒有分隔符的話,就arr.join("");

arr.toString():同樣是把數組轉成字符串,但是返回的字符串每項都是用逗號隔開的

 


免責聲明!

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



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