电竞比分网-中国电竞赛事及体育赛事平台

分享

JS數(shù)組方法(ES5、ES6)

 python_lover 2020-08-03

1. arr.push() 從后面添加元素,添加一個(gè)或多個(gè),返回值為添加完后的數(shù)組長(zhǎng)度

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() 從后面刪除元素,只能是一個(gè),返回值是刪除的元素

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() 從前面刪除元素,只能是一個(gè),返回值是刪除的元素

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() 從前面添加元素,添加一個(gè)或多個(gè),返回值是添加完后的數(shù)組的長(zhǎng)度

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個(gè)元素,返回值是刪除的元素?cái)?shù)組

  參數(shù):index 索引值,num 個(gè)數(shù)

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() 將字符串轉(zhuǎn)化為數(shù)組

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

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

 

8. arr.concat() 連接兩個(gè)數(shù)組,返回值是連接后的新數(shù)組

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() 將數(shù)組進(jìn)行排序,返回值是排好的數(shù)組,默認(rèn)是按照最左邊的數(shù)字進(jìn)行排序(非數(shù)字整體大?。?/h3>
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() 將原數(shù)組反轉(zhuǎn),返回值是反轉(zhuǎn)后的數(shù)組

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的值)的數(shù)組,返回值是切出去的數(shù)組

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) 遍歷數(shù)組,無(wú)返回值

 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) 遍歷數(shù)組(對(duì)原數(shù)組的值進(jìn)行操作),返回一個(gè)新數(shù)組

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) 過(guò)濾數(shù)組,返回一個(gè)滿足要求的數(shù)組

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) 根據(jù)判斷條件,遍歷數(shù)組中的元素,是否都滿足,若都滿足則返回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) 根據(jù)判斷條件,遍歷數(shù)組中的元素,是否存在至少有一個(gè)滿足,若存在則返回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() 從前往后查找某個(gè)元素的索引值,若有重復(fù)的,則返回第一個(gè)查到的索引值,若不存在,返回 -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()  從后往前查找某個(gè)元素的索引值,若有重復(fù)的,則返回第一個(gè)查到的索引值,若不存在,返回 -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]將偽數(shù)組變成數(shù)組,只要有l(wèi)ength的就可以轉(zhuǎn)成數(shù)組

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]將一組值轉(zhuǎn)換成數(shù)組,類似于聲明數(shù)組

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

 ps:
  new Array()有缺點(diǎn),就是參數(shù)問(wèn)題引起的重載
  console.log(new Array(2))  // [empty × 2] 是個(gè)空數(shù)組
  console.log(Array.of(2))  //  [2]

 

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

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]找到第一個(gè)符合條件的數(shù)組成員的索引值

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]判斷數(shù)組中是否包含特定的值

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]使用給定的值,填充一個(gè)數(shù)組(改變?cè)瓟?shù)組)

  參數(shù): 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]遍歷數(shù)組的鍵名

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]遍歷數(shù)組鍵值

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]遍歷數(shù)組的鍵名和鍵值

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() 方法返回迭代數(shù)組。

  迭代數(shù)組中每個(gè)值 前一個(gè)是索引值作為 key, 數(shù)組后一個(gè)值作為 value。

 

27. arr.copyWithin()  [ES6]在當(dāng)前數(shù)組內(nèi)部,將制定位置的數(shù)組復(fù)制到其他位置,會(huì)覆蓋原數(shù)組項(xiàng),返回當(dāng)前數(shù)組

參數(shù):  target --必選 索引從該位置開始替換數(shù)組項(xiàng)
     start --可選 索引從該位置開始讀取數(shù)組項(xiàng),默認(rèn)為0.如果為負(fù)值,則從右往左讀。
     end --可選 索引到該位置停止讀取的數(shù)組項(xiàng),默認(rèn)是Array.length,如果是負(fù)值,表示倒數(shù)

 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) 判斷一個(gè)值是否為數(shù)組的方法,若為數(shù)組,返回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) 把數(shù)組中的所有元素放入一個(gè)字符串,separate表示分隔符,可省略,默認(rèn)是逗號(hào)

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

 

30. arr.flat(pliy)  [ES6]對(duì)數(shù)組內(nèi)嵌套的數(shù)組“拉平”,就是把數(shù)組中的數(shù)組的元素挨個(gè)拿出來(lái),放數(shù)組元素所在位置,返回一個(gè)新的數(shù)組,不會(huì)影響到原來(lái)的數(shù)組

  參數(shù):pliy表示拉平的層數(shù),默認(rèn)是1層,想無(wú)限拉平可以傳入Infinity關(guān)鍵字

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]對(duì)原數(shù)組的每個(gè)成員執(zhí)行一個(gè)函數(shù),相當(dāng)于執(zhí)行Array.prototype.map(),然后對(duì)返回值組成的數(shù)組執(zhí)行flat()方法。該方法返回一個(gè)新數(shù)組,不改變?cè)瓟?shù)組。只能展開一層數(shù)組。

1 // 相當(dāng)于 [[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() 將數(shù)組轉(zhuǎn)換為字符串并返回。數(shù)組中的元素之間用逗號(hào)分隔。

1 let  arr = ["Banana", "Orange", "Apple", "Mango"]
2 console.log(arr.toString())  // Banana,Orange,Apple,Mango

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多