首頁 > 軟體

javascript陣列裡的27個方法總合詳解

2022-02-21 19:00:11

1.concat()

concat() 方法用於連線兩個或多個陣列。方法不會更改現有陣列,而是返回一個新陣列,其中包含已連線陣列的值。

var str1 = [1,2,3,4,5,6]
var str2 = ['a','b','c','d','e']
console.log(str1.concat(str2));// [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e']

2.copyWithin()

copyWithin() 複製陣列的一部分資料覆蓋到陣列的另一個位置。會修改陣列,但是不會修改陣列的長度。

var str1 = [1,2,3,4,5,6]
// 從索引為0開始複製,到索引1結束(不包括結束位置),替換到索引為2的位置,
console.log(str1.copyWithin(2,0,1));    //[1, 2, 1, 4, 5, 6]
// 因為省略一個引數,所以從索引為3位置後的所有元素,從索引為1開始複製替換
console.log(str1.copyWithin(1,3));    //[1, 4, 5, 6, 5, 6]

3.Object.entries()

返回一個陣列,其元素是與直接在object上找到的可列舉屬性鍵值對相對應的陣列

var str3 = { 100: 'a', 2: 'b', 7: 'c' };
 console.log(Object.entries(str3));  //['2', 'b']['7', 'c']['100', 'a']

4.every()

every()方法用來判斷陣列的所有元素是否都滿足指定的條件。

var str1 = [1,2,3,4,5,6]
// 創造一個函數來作為判斷條件
function checkAdult(value,index) {
     return value > 0;
 }
// every() 方法用來判斷陣列的所有元素是否都滿足指定的條件。
console.log(str1.every(checkAdult));    //true

5.fill()

fill()方法用來把陣列所有元素替換成靜態元素

var str1 = [1,2,3,4,5,6]
console.log(str1.fill(1));  //[1, 1, 1, 1, 1, 1]

6.filter()

它用於把Array的某些元素過濾掉,然後返回剩下的元素。

var str1 = [1,2,3,4,5,6]
console.log(str1.filter(function(x){return x > 2}));    //[3, 4, 5, 6]

7.find()和findIndex()

find()返回陣列中第一個通過測試的元素的值。

findIndex()返回陣列中通過測試的第一個元素的索引。

var str1 = [1,2,3,4,5,6]
console.log(str1.find(function(x){return x > 2}));  //3
console.log(str1.findIndex(function(x){return x > 2}));  //2

8.forEach()

forEach()為每個陣列元素都呼叫函數。

var str1 = [1,2,3,4,5,6]
str1.forEach(x => console.log(x));    //依次輸出123456

9.from()

以物件建立陣列。

console.log(Array.from('string'));  //['s', 't', 'r', 'i', 'n', 'g']

10.includes()

includes()檢查陣列是否包含指定的元素。第二個引數可以指定從哪個位置開始檢測

var str1 = [1,2,3,4,5,6]
console.log(str1.includes(2,0));  //true

11.indexOf()和lastIndexOf()

indexOf()在陣列中搜尋元素並返回其索引。第二個引數可以指定從哪個位置開始搜尋

lastIndexOf()在陣列的末尾開始搜尋元素並返回其索引。第二個引數可以指定從哪個位置開始搜尋

var str1 = [1,2,3,4,5,6]
console.log(str1.indexOf(2,0));  //1
console.log(str1.lastIndexOf(2,5));     //1

12.isArray()

可以用來判斷是否為陣列物件

var str1 = [1,2,3,4,5,6]
console.log(Array.isArray(str1));  //true

13.join()

將陣列的所有元素連線成一個字串。元素將由指定的分隔符分隔。預設分隔符是逗號 (,)。

var str2 = ['a','b','c','d','e']
const a = str2.join()
console.log(a);         //a,b,c,d,e
const a = str2.join('')
console.log(a);         //abcde

14.keys()

返回一個陣列,陣列裡的屬性是陣列所對應的鍵

var str3 = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(str3));     //['2', '7', '100']
//字串則返回索引
console.log(Object.keys("string"));     //['0', '1', '2', '3', '4', '5']

15.map()

為每個陣列元素呼叫函數的結果來建立新陣列。

var str1 = [1,2,3,4,5,6]
const a = str1.map(item => item * 10)
console.log(a);     // [10, 20, 30, 40, 50, 60]

16.pop()

刪除陣列的最後一個元素,並返回該元素。方法會改變陣列的長度。

var str1 = [1,2,3,4,5,6]
console.log(str1.pop(), str1);     // 6  ,  [1, 2, 3, 4, 5]

17.push()

將新元素新增到陣列的末尾,並返回新的長度。方法會改變陣列的長度。

var str1 = [1,2,3,4,5,6]
console.log(str1.push(7), str1);     // 7 , [1, 2, 3, 4, 5, 6, 7]

18.reduce()和reduceRight()

reduce()執行順序是從左到右                reduceRight()執行順序是從右到左

為陣列中的每一個元素依次執行回撥函數,一般用於累加器。

有四個引數,第一個為初始值, 或者計算結束後的返回值。第二個為當前元素。第三個為當前元素的索引。第四個為當前元素所屬的陣列物件。

initiavalue:當陣列為空時,可以設定傳遞給函數的初始值,放在物件的後面

var str1 = [1,2,3,4,5,6]
// 累加器的使用
console.log(str1.reduce(function(total,num,index,add){return total+num}));// 21
//initiavalue的使用
var arr=[]
console.log(arr.reduce(function(total){return total},0));    //0

19.reverse()

反轉陣列中元素的順序。

var str1 = [1,2,3,4,5,6]
console.log(str1.reverse());     // [6, 5, 4, 3, 2, 1]

20.shift()

刪除陣列的第一個元素,並返回該元素。

var str1 = [1,2,3,4,5,6]
console.log(str1.shift(),str1);     // 1 , [2, 3, 4, 5, 6]

21.slice()

選擇陣列的一部分,並返回新陣列。

var str1 = [1,2,3,4,5,6]
// 兩個引數 從索引為1開始到索引為3結束,不包括結束位置,形成新陣列
console.log(str1.slice(1,3));     //  [2, 3]
// 一個引數 表示從索引為1開始的所有元素形成一個新陣列
console.log(str1.slice(1));     //  [2, 3, 4, 5, 6]

22.some()

檢查陣列中的任何元素是否通過測試。和every()差不多

some如果遇到 true 就不在執行了。    如果都為 false 返回false。        不會改變原陣列

var str1 = [1,2,3,4,5,6]
function some(item,index,array){
return item>5
}
console.log(str1.some(some));  //true
function some(item,index,array){
return item>7
}
console.log(str1.some(some));  //false

23.sort()

srot()如果不帶引數,是將按字母順序對陣列中的元素進行排序,也就是是按照字元編碼的順序進行排序。

如果為number型別其實也不是按正常的從小到大排序,更像是根據元素的第一位數位的大小排序。

如果想正常進行從大到小  從小到大的排序。可以進行比較值的大小來實現。

從小到大,a-b的含義:a-b大於0,說明a大,則把a放在在後面。a-b小於0,說明b大,則b在後面。如果a-b等於0,則不變。        從大到小就是上面的相反,就不說了(不想寫了,程式設計師的美德就是偷懶)

至於為什麼是a - b,b - a可以去看這篇文章https://www.jb51.net/article/238275.htm

var arr1 = ['a', 'd', 'c', 'b'];
arr.sort();  //['a', 'b', 'c', 'd']
var arr2 = [10, 5, 40, 25, 100, 1];
arr2.sort(); //[1, 10 ,100, 25, 40, 5]
//從小到大的排序
var arr2 = [10, 5, 40, 25, 100, 1];
arr2.sort((a,b) => a-b)
console.log(arr2);    // [1, 5, 10, 25, 40, 100]
//從大到小的排序
var arr2 = [10, 5, 40, 25, 100, 1];
arr2.sort((a,b) => b-a)
console.log(arr2);    // [100, 40, 25, 10, 5, 1]

24.splice()

從陣列中新增/刪除元素。

var str1 = [1,2,3,4,5,6]
// 刪除,從索引為1開始,刪除2個
console.log(str1.splice(1,2), str1);     // [2, 3] , [1, 4, 5, 6]
// 新增,從索引為1開始到索引為2開始替換為'0'
console.log(str1.splice(1,2,'0','0'), str1);     // [2, 3] , [1, '0', '0', 4, 5, 6]

25.toString()

將陣列轉換為字串,並返回結果。

var str1 = [1,2,3,4,5,6]
console.log(str1.toString(), str1);     // 1,2,3,4,5,6  [1, 2, 3, 4, 5, 6]

26.unshift

將新元素新增到陣列的開頭,並返回新的陣列長度值。

var str1 = [1,2,3,4,5,6]
console.log(str1.unshift(0), str1);     // 7  , [0, 1, 2, 3, 4, 5, 6]

27.valueOf()

valueOf() 方法返回其自身。

var str1 = [1,2,3,4,5,6]
str1.push(7)
console.log(str1.valueOf(),str1);     //  [1, 2, 3, 4, 5, 6, 7] , [1, 2, 3, 4, 5, 6, 7]

總結

本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!    


IT145.com E-mail:sddin#qq.com