詳解JS數組方法
一、會修改原數組
1.push():
(在數組結尾處)向數組添加一個新的元素
push() 方法返回新數組的長度
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.push("Kiwi");
2.pop():
方法從數組中刪除最後一個元素
可以接收pop()的返回值,是被彈出的值”Mango”
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.push("Kiwi");
3.shift():
刪除首個數組元素
可以接收刪除的值
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.shift();
4.unshift():
(在開頭)向數組添加新元素
返回新數組的長度。
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.unshift("Lemon");
5.splice():
用於向數組添加新項
第一個參數(2)定義瞭應添加新元素的位置(拼接)。
第二個參數(0)定義應刪除多少元素。
其餘參數(“Lemon”,“Kiwi”)定義要添加的新元素。
splice() 方法返回一個包含已刪除項的數組
也可以通過設置參數來刪除數組中元素
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2, 0, "Lemon", "Kiwi"); //["Banana","Orange","Lemon","Kiwi","Apple","Mango"] var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(0, 1); //["Orange", "Apple", "Mango"]
6.sort():
以字母順序對數組進行排序
如果是對數字進行排序,則需要註意。 “25” 大於 “100”,因為 “2” 大於 “1”。我們通過一個比值函數來修正此問題。
sort()也可以通過修改比較函數來排序對象數組
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b});//升序 points.sort(function(a, b){return b - a});//降序 points.sort((a, b)=>{return b - a});//箭頭函數 var cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010} ] cars.sort(function(a, b){return a.year - b.year});//比較年份(數字) cars.sort(function(a, b){//比較類型(字符串) var x = a.type.toLowerCase(); var y = b.type.toLowerCase(); if (x < y) {return -1;} if (x > y) {return 1;} return 0; });
7.reverse():
反轉數組中的元素
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.reverse();
二、不修改原數組
1.toString():
把數組轉換為數組值(逗號分隔)的字符串。
var fruits = ["Banana", "Orange", "Apple", "Mango"] console.log(fruits.toString()) //Banana,Orange,Apple,Mango
2.join():
可將所有數組元素結合為一個字符串。
它的行為類似 toString(),但是還可以規定分隔符
var fruits = ["Banana", "Orange", "Apple", "Mango"] console.log(fruits.join(" * ")) //Banana * Orange * Apple * Mango
3.concat():
通過合並(連接)現有數組來創建一個新數組。可以連接多個
var myGirls = ["Cecilie", "Lone"]; var myBoys = ["Emil", "Tobias", "Linus"]; var myChildren = myGirls.concat(myBoys); // 連接 myGirls 和 myBoys var arr1 = ["Cecilie", "Lone"]; var arr2 = ["Emil", "Tobias", "Linus"]; var arr3 = ["Robin", "Morgan"]; var myChildren = arr1.concat(arr2, arr3); // 將arr1、arr2 與 arr3 連接在一起
4.slice() :
方法用數組的某個片段切出新數組。
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(1);//從第一個到最後 //["Orange", "Lemon", "Apple", "Mango"] var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(1,3);//從第一個到第三個(不包括3) //["Orange", "Lemon"]
5.map():
將數組中的每個元素調用一個提供的函數,結果作為一個新的數組返回,並沒有改變原來的數組
let arr = [1, 2, 3, 4, 5] let newArr = arr.map(x => x*2)//簡寫的箭頭函數 //arr= [1, 2, 3, 4, 5] 原數組保持不變 //newArr = [2, 4, 6, 8, 10] 返回新數組
6.forEach():
將數組中的每個元素執行提供的函數,沒有返回值,註意和map方法區分
let arr = [1, 2, 3, 4, 5] arr.forEach(x => { console.log(2*x) //return x*2 返回值沒有用,此函數沒有返回值 })
7.filter():
此方法是將所有元素進行判斷,將滿足條件的元素作為一個新的數組返回。函數裡面寫的是條件!!!
let arr = [1, 2, 3, 4, 5] let newArr = arr.filter(value => value >= 3 ) //或者 let newArr = arr.filter(function(value) {return value >= 3} ) console.log(newArr) //[3,4,5]
8.every():
此方法是將所有元素進行判斷返回一個佈爾值,如果所有元素都滿足判斷條件,則返回true,否則為false
let arr = [1, 2, 3, 4, 5] const isLessThan4 = value => value < 4 const isLessThan6 => value => value < 6 arr.every(isLessThan4 ) //false arr.every(isLessThan6 ) //true
9.some():
此方法是將所有元素進行判斷返回一個佈爾值,如果存在元素滿足判斷條件,則返回true,若所有元素都不滿足判斷條件,則返回false
let arr= [1, 2, 3, 4, 5] const isLessThan4 = value => value < 4 const isLessThan6 = value => value > 6 arr.some(isLessThan4 ) //true arr.some(isLessThan6 ) //false
10.reduce():
此方法是所有元素調用返回函數,返回值為最後結果,傳入的值必須是函數類型
let arr = [1, 2, 3, 4, 5] const add = (a, b) => a + b let sum = arr.reduce(add) console.log(sum) //sum = 15 相當於累加的效果 //與之相對應的還有一個 Array.reduceRight() 方法,區別是這個是從右向左操作的
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- javascript的數組方法大全
- js將多維數組轉為一維數組後去重排序
- 27個JavaScript數組常見方法匯總與實例說明
- 非常全面的12種js數組去重的方法
- javascript數組裡的27個方法總合詳解