JS數組方法(ES五、ES6)

1. arr.push() 從後面添加元素,添加一個或多個,返回值爲添加完後的數組長度

1  let arr = [1,2,3,4,5] 
2  console.log(arr.push(6,7)) // 7
3  console.log(arr) // [1,2,3,4,5,6,7]

 

2. arr.pop() 從後面刪除元素,只能是一個,返回值是刪除的元素

1 let arr = [1,2,3,4,5]
2 console.log(arr.pop())  // 5
3 console.log(arr)  // [1,2,3,4]

 

3. arr.shift() 從前面刪除元素,只能是一個,返回值是刪除的元素

1 let arr = [1,2,3,4,5]
2 console.log(arr.shift())  // 1
3 console.log(arr)  // [2,3,4,5]

 

4. arr.unshift() 從前面添加元素,添加一個或多個,返回值是添加完後的數組的長度

1 let arr = [1,2,3,4,5]
2 console.log(arr.unshift(6,7))  // 7
3 console.log(arr)  // [6,7,1,2,3,4,5]

 

5. arr.splice(index,num) 刪除從index(索引值)開始以後的那num個元素,返回值是刪除的元素數組

  參數:index 索引值,num 個數數組

1 let arr = [1,2,3,4,5]
2 console.log(arr.splice(2,3))  // [3,4]
3 console.log(arr)  // [1,2,5]

 

7. str.split() 將字符串轉化爲數組

1 let str = '12345'
2 console.log(str.split(''))  // ["1","2","3","4","5"]

 

8. arr.concat() 鏈接兩個數組,返回值是鏈接後的新數組

1 let arr = [1,2,3,4,5]
2 console.log(arr.concat([6,7]))  // [1,2,3,4,5,6,7]
3 console.log(arr)  // [1,2,3,4,5]

 

9. arr.sort() 將數組進行排序,返回值是排好的數組,默認是按照最左邊的數字進行排序(非數字總體大小)

1 let arr = [40,8,10,5,79,3]
2 console.log(arr.sort())  // [10,3,40,5,79,8]
3 
4 let arr2 = arr.sort((a,b) => a - b)
5 console.log(arr2)  // [3,5,8,10,40,79]
6 
7 let arr3 = arr.sort((a,b) => b - a)
8 console.log(arr3)  // [79,40,10,8,5,3]

 

9. arr.reverse() 將原數組反轉,返回值是反轉後的數組

1 let arr = [1,2,3,4,5]
2 console.log(arr.reverse())  // [5,4,3,2,1]
3 console.log(arr)   // [5,4,3,2,1]

 

10. arr.slice(start, end) 切去索引值start到索引值end(不包含end的值)的數組,返回值是切出去的數組

1 let arr = [1,2,3,4,5]
2 console.log(arr.slice(1,3))   // [2,3]
3 console.log(arr)    // [1,2,3,4,5]

 

11. arr.forEach(callback) 遍歷數組,無返回值

 1 let arr = [1,2,3,4,5]
 2 arr.forEach((value, index, array) => {
 3    console.log(`value--${value}    index--${index}    array--${array}`) 
 4 })
 5 
 6 // value--1    index--0    array--1,2,3,4,5
 7 // value--2    index--1    array--1,2,3,4,5
 8 // value--3    index--2    array--1,2,3,4,5
 9 // value--4    index--3    array--1,2,3,4,5
10 // value--5    index--4    array--1,2,3,4,5

 

12. arr.map(callbak) 遍歷數組(對原數組的值進行操做),返回一個新數組

1 let arr = [1,2,3,4,5]
2 arr.map( (value, index, array)=>{
3         value = value * 2
4 })   
5 console.log(arr) // [1,4,6,8,10]

 

13. arr.filter(callback) 過濾數組,返回一個知足要求的數組

1 let arr = [1,2,3,4,5]
2 let arr2 = arr.filter((value, index) => value >2)
3 console.log(arr2)  // [3,4,5]

 

14. arr.every(callback) 根據判斷條件,遍歷數組中的元素,是否都知足,若都知足則返回true,反之返回false

1 let arr = [1,2,3,4,5]
2 
3 let arr2 = arr.every((value, index) => i > 2)
4 console.log(arr2)  // false
5 
6 let arr3 = arr.every((value, index) => i > 0)
7 console.log(arr3)  // true

 

15. arr.some(callback) 根據判斷條件,遍歷數組中的元素,是否存在至少有一個知足,若存在則返回true,反之返回false

1 let arr = [1,2,3,4,5]
2 
3 let arr2 = arr.some((value, index) => i > 2)
4 console.log(arr2)  // true
5 
6 let arr3 = arr.some((value, index) => i > 5)
7 console.log(arr3)  // false

 

16. arr.indexOf() 從前日後查找某個元素的索引值,如有重複的,則返回第一個查到的索引值,若不存在,返回 -1

1 let arr = [1,2,3,4,5,4]
2 
3 let arr2 = arr.indexOf(4)
4 console.log(arr2)  // 3
5 
6 let arr3 = arr.indexOf(6)
7 console.log(arr3)  // -1

 

17. arr.lastIndexOf()  從後往前查找某個元素的索引值,如有重複的,則返回第一個查到的索引值,若不存在,返回 -1

1 let arr = [1,2,3,4,5,4]
2 
3 let arr2 = arr.lastIndexOf(4)
4 console.log(arr2)  // 5
5  
6 let arr3 = arr.lastIndexOf(6)
7 console.log(arr3)  // -1

 

18. Array.from()  [ES6]將僞數組變成數組,只要有length的就能夠轉成數組

1 let str = '12345'
2 console.log(Array.from(str))    // ["1", "2", "3", "4", "5"]
3 
4 let obj = {0:'a',1:'b',length:2}
5 console.log(Array.from(obj))   // ["a", "b"]

 

19. Array.of()  [ES6]將一組值轉換成數組,相似於聲明數組

1 let str = '11'
2 console.log(Array.of(str))   // ['11']
3 
4 等價於 
5 console.log(new Array('11'))   // ['11]

 ps:
  new Array()有缺點,就是參數問題引發的重載
  console.log(new Array(2))  // [empty × 2] 是個空數組
  console.log(Array.of(2))  //  [2]

 

20. arr.find(callback)  [ES6]找到第一個符合條件的數組成員

1 let arr = [1,2,3,4,5,2,4]
2 let arr2 = arr.find((value, index, array) => value > 2)
3 console.log(arr2)   // 3

 

21. arr.findIndex(callback)  [ES6]找到第一個符合條件的數組成員的索引值

1 let arr = [1,2,3,4,5]
2 let arr1 = arr.findIndex((value, index, array) => value > 2)
3 console.log(arr1)  // 2

 

22. arr.includes()  [ES6]判斷數組中是否包含特定的值

let arr = [1,2,3,4,5]

let arr2 = arr.includes(2)  
console.log(arr2)    // ture

let arr3 = arr.includes(9) 
console.log(arr3)    // false

let arr4 = [1,2,3,NaN].includes(NaN)
console.log(arr5)    // true

 

23. arr.fill(target, start, end)  [ES6]使用給定的值,填充一個數組(改變原數組)

  參數: target – 待填充的元素
      start – 開始填充的位置 - 索引
         end – 終止填充的位置 - 索引(不包括該位置)函數

let arr = [1,2,3,4,5]

let arr2 = arr.fill(5)
console.log(arr2)  // [5, 5, 5, 5, 5]
console.log(arr)   // [5, 5, 5, 5, 5]

let arr3 = arr.fill(5,2)
console.log(arr3)  // [1,2,5,5,5]

let arr4 = arr.fill(5,1,3)
console.log(arr4)  // [1,5,5,4,5]

 

24. arr.keys()  [ES6]遍歷數組的鍵名

1 let arr = [1,2,3,4,5]
2 let arr2 = arr.keys()
3 for (let key of arr2) {
4     console.log(key)   // 0,1,2,3,4
5 }

 

25. arr.values()  [ES6]遍歷數組鍵值

let arr = [1,2,3,4,5]
let arr1 = arr.values()
for (let val of arr1) {
     console.log(val);   // 1,2,3,4,5
}

 

26. arr.entries()  [ES6]遍歷數組的鍵名和鍵值

1 let arr = [1,2,3,4,5]
2 let arr2 = arr.entries()
3 for (let e of arr2) {
4     console.log(e);   // [0,1] [1,2] [2,3] [3,4] [4,5]
5 }

  entries() 方法返回迭代數組。spa

  迭代數組中每一個值 前一個是索引值做爲 key, 數組後一個值做爲 value。prototype

 

27. arr.copyWithin()  [ES6]在當前數組內部,將制定位置的數組複製到其餘位置,會覆蓋原數組項,返回當前數組

參數:  target --必選 索引從該位置開始替換數組項
     start --可選 索引從該位置開始讀取數組項,默認爲0.若是爲負值,則從右往左讀。
     end --可選 索引到該位置中止讀取的數組項,默認是Array.length,若是是負值,表示倒數code

 1 let arr = [1,2,3,4,5,6,7]
 2 
 3 let arr2 = arr.copyWithin(1)
 4 console.log(arr2)   // [1, 1, 2, 3, 4, 5, 6]
 5 
 6 let arr3 = arr.copyWithin(1,2)
 7 console.log(arr3)   // [1, 3, 4, 5, 6, 7, 7]
 8 
 9 let arr4 = arr.copyWithin(1,2,4)
10 console.log(arr4)   // [1, 3, 4, 4, 5, 6, 7]

 

28. Array.isArray(value) 判斷一個值是否爲數組的方法,若爲數組,返回true,反之返回false

 1 let a = 1234
 2 let b = "fsaufh"
 3 let c = {a:1,b:2}
 4 let d = [1,2]
 5 
 6 let mark1 = Array.isArray(a)
 7 console.log(mark1)  // false
 8 
 9 let mark2 = Array.isArray(b)
10 console.log(mark2)  // false
11 
12 let mark3 = Array.isArray(c)
13 console.log(mark3)  // false
14 
15 let mark4 = Array.isArray(d)
16 console.log(mark4)  // true

 

29. arr.join(separate) 把數組中的全部元素放入一個字符串,separate表示分隔符,可省略,默認是逗號

1 let arr = [1,2,3,4,5]
2 console.log(arr.join()) // 1,2,3,4,5
3 console.log(arr.join("-"))  // 1-2-3-4-5

 

30. arr.flat(pliy)  [ES6]對數組內嵌套的數組「拉平」,就是把數組中的數組的元素挨個拿出來,放數組元素所在位置,返回一個新的數組,不會影響到原來的數組

  參數:pliy表示拉平的層數,默認是1層,想無限拉平能夠傳入Infinity關鍵字blog

1 let arr = [1, 2, [3, [4, 5]]]
2 console.log(arr.flat(2))  // [1, 2, 3, 4, 5]
3 
4 let arr2 = [1,[2,[3,[4,5]]]]
5 console.log(arr2.flat(Infinity))  // [1,2,3,4,5]

 

31. arr.flatMap()  [ES6]對原數組的每一個成員執行一個函數,至關於執行Array.prototype.map(),而後對返回值組成的數組執行flat()方法。該方法返回一個新數組,不改變原數組。只能展開一層數組。

1 // 至關於 [[2, 4], [3, 6], [4, 8]].flat()
2 [2, 3, 4].flatMap((x) => [x, x * 2])
3 // [2, 4, 3, 6, 4, 8]

 

32. arr.toString() 將數組轉換爲字符串並返回。數組中的元素之間用逗號分隔。

1 let  arr = ["Banana", "Orange", "Apple", "Mango"]
2 console.log(arr.toString())  // Banana,Orange,Apple,Mango
相關文章
相關標籤/搜索