js中數組的各種方法


1.數組的length屬性

Array對象當中,存在一個length屬性,能夠用來查看數組的長度。

例如:

var arr = [10,20,30,40]; console.log(arr.length);// 4 


通常情況下,我們可以通過將length屬性值設置為0,來讓數組清空。

例如:

var arr = [10,20,30,40]; arr.length = 0; console.log(arr); // [] 數組被清空 

用length的增刪改
增:直接選定,哪里沒有增哪里
刪:只能刪后面不能刪前面
改:選定哪個改哪個
查:選定哪個查哪個

2.數組當中其他的操作方法

首先來說下push()方法。通過這個方法,我們能夠將一個或者多個元素添加到數組的末尾,並且返回數組的新長度。
// 創建一個數組 var arr1 = ['張三','李四'];
// 通過Push方法向數組中添加元素 arr1.push("王五");
// 檢查數組內容 console.log(arr1); // [ '張三', '李四', '王五' ]
// 嘗試添加多個內容 arr1.push("趙六","劉七");
// 打印數組元素 console.log(arr1);
// [ '張三', '李四', '王五', '趙六', '劉七' ]
// 創建一個新的數組 var arr2 = [1,2,3,4];
// 嘗試將arr2添加到arr1 arr1.push(arr2);
// 打印arr1; console.log(arr1);
// [ '張三', '李四', '王五', '趙六', '劉七', [ 1, 2, 3, 4 ] ]
// 向arr1中再次添加數據並且查看push方法的返回值 console.log(arr1.push('hello,world')); // 7

pop()方法能夠從數組中刪除最后一個元素,並且返回該元素的值。此方法更改數組的長度。

var plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];
console.log(plants.pop());
// expected output: "tomato"
console.log(plants);
// expected output: Array ["broccoli", "cauliflower", "cabbage", "kale"]
plants.pop();
console.log(plants);
// expected output: Array ["broccoli", "cauliflower", "cabbage"]

上面我們演示了pop方法刪除數組的最后一個元素,但是在使用pop方法的時候,我們需要注意,該方法通過length屬性來確定最后一個元素的位置,
如果不包含length屬性或者length屬性不能夠被轉換成一個數值,那么就會將length屬性設置為0,並且返回undefined。

同時,你在一個空數組上調用pop方法,也會返回undefined。

 

unshift()方法能夠將一個或者多個元素添加到數組的開頭,並且返回數組的新長度。

var array1 = [1, 2, 3]; console.log(array1.unshift(4, 5)); // expected output: 5 console.log(array1); // expected output: Array [4, 5, 1, 2, 3]


shift()方法從數組中刪除第一個元素,並返回該元素的值。此方法更改數組的長度。

var array1 = [1, 2, 3]; var firstElement = array1.shift(); console.log(array1); // expected output: Array [2, 3] console.log(firstElement); // expected output: 1

shift 方法移除索引為 0 的元素(即第一個元素),並返回被移除的元素,其他元素的索引值隨之減 1。如果 length 屬性的值為 0 (長度為 0),則返回 undefined。

shift 方法並不局限於數組:這個方法能夠通過 call 或 apply 方法作用於類似數組的對象上。但是對於沒有 length 屬性(從0開始的一系列連續的數字屬性的最后一個)的對象,調用該方法可能沒有任何意義。

 

 toString() 把數組轉換為數組值(逗號分隔)的字符串    直接轉為字符串,並返回

 

join() 方法也可將所有數組元素結合為一個字符串。它的行為類似 toString(),但是您還可以規定分隔符
var fruits = ["Banana", "Orange","Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.join(" * ");
Banana * Orange * Apple * Mango

 

concat() 方法通過合並(連接)現有數組來創建一個新數組:concat() 方法不會更改現有數組。它總是返回一個新數組。
concat() 方法可以使用任意數量的數組參數:var arr1 = ["Cecilie", "Lone"];
var arr2 = ["Emil", "Tobias", "Linus"];
var arr3 = ["Robin", "Morgan"];
var myChildren = arr1.concat(arr2, arr3); // 將arr1、arr2 與 arr3 連接在一起

concat() 方法也可以將值作為參數:var arr1 = ["Cecilie", "Lone"];
var myChildren = arr1.concat(["Emil", "Tobias", "Linus"]);

 

arr.splice(m,n,“”)  --   替換數組指定位置的值,不賦值則為刪除該位數值;       

m代表索引值   

n插入替換幾個(為0則代表插入)

“”代表替換或者插入的值  可以為多個 

刪除指定位置,並替換,返回刪除的數據

 

arr.slice(m,n)   --   截取       從m到n的前一個    若其中值為一個則代表從m到最后;

 

arr.sort(函數) 默認按字符從小到大排序;(function(a,b){  return  a-b或者b-a; })即可換為數值排序;

 

indexOf(value,start);

用於返回某個數組或者字符串中規定字符或者字符串的位置;

查詢並返回數據的索引

value為要查詢的數據;start為可選,表示開始查詢的位置,當start為負數時,從數組的尾部向前數;如果查詢不到value的存在,則方法返回-1

lastIndexOf() 反向查詢並返回數據的索引

 

 

3.ES5新增的數組方法

 循環,遍歷數組 

forEach(callback); 

參數callback為回調函數,會遍歷數組所有的項,回調函數接受三個參數,分別為value,index,self;forEach沒有返回值

 

 map(callback);

同forEach,同時回調函數返回數據,組成新數組由map返回;

 

filter(callback);

同forEach,同時回調函數返回布爾值,為true的數據組成新數組由filter返回   

 

 

arr.every(callback)

判斷數組中每一項是否都滿足條件,只有所有項都滿足條件,才會返回true 。   

 

arr.some(callback) 

判斷數組中是否存在滿足條件的項,只要有一項滿足條件,就會返回true。 

 

 

arr.reduce()
功能:從數組的第一項開始,逐個遍歷到最后,迭代數組的所有項,然后構建一個最終返回的值。
參數:reduce()接收一個或兩個參數:第一個是回調函數,表示在數組的每一項上調用的函數;第二個參數(可選的)作為歸並的初始值,被回調函數第一次執行時的第一個參數接收。
reduce(callback,initial);callback默認有四個參數,分別為prev,now,index,self。
callback返回的任何值都會作為下一次執行的第一個參數。
如果initial參數被省略,那么第一次迭代發生在數組的第二項上,因此callback的第一個參數是數組的第一項,第二個參數就是數組的第二項。

 

arr.reduceRight()
功能:(與reduce類似)從數組的最后一項開始,向前逐個遍歷到第一位,迭代數組的所有項,然后構建一個最終返回的值。
參數:同reduce。
demo:同reduce

             

 


免責聲明!

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



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