JS-陣列方法總結

Conan_W發表於2020-12-22

在我們到陣列這塊內容的時候,我們會發現陣列的方法居多,功能巨強大,進行我們對陣列的所有原生方法進行分類總結。

1. 檢測陣列

  • instanceof方法

// 用於檢測某個屬性或者物件是否屬於物件或者陣列
// 返回值為 true/false
var arr = [[],1,2,3];
console.log(arr instanceof Array); //true
console.log(arr[0] instanceof Array); //true
// 還可以檢測的是否為物件

  • Array.isArray 方法

// 用於確定一個傳入的值是否為陣列Array
// 返回值為true/false
console.log(Array.isArray([1,2,3])); //true
console.log(Array.isArray({name:‘conan’})); //false

  • Array.from 方法

// 將類陣列轉化為真正的陣列
// 返回值為轉換過的陣列
console.log(Array.from([[1,2,3]])); //[1,2,3] 類陣列轉換為陣列
console.log(Array.from(‘foo’)); //[‘f’, ‘o’, ‘o’] 字串轉換為陣列
function f() {
return Array.from(arguments);
}
f(1,2,3); // [1,2,3]

-Array.toString() 方法

// 將陣列轉換為字串, 並用逗號隔開 返回一個字串
var arr = [1,2,‘a’,‘conan’]
console.log(arr.toString()) // ‘1,2,a,conan’

  • Array.join()方法

// 將一個陣列或者類陣列通過指定的連線符來連線陣列元素,並返回一個字串
var arr = [1,2,‘wang’, ‘conan’] ;
console.log(arr.join()); // ‘1,2,wang,conan’ 預設情況下用逗號連線
console.log(arr.join(’’)); //‘12wangconan’
console.log(arr.join(’-’)); //‘1-2-wang-conan’

  • Array.push() 方法

// 棧方法 將一個或多個新元素新增到陣列的末尾,返回新陣列的長度
var arr = [‘conan’, ‘wang’];
console.log(arr.push(‘king’)); // [‘conan’, ‘wang’, ‘king’]

  • Array.pop() 方法

// 棧方法, 從陣列末尾刪除一個或多個元素, 返回被刪除的元素
var arr = [‘conan’, ‘wang’, ‘king’];
console.log(arr.pop()); // [‘conan’,‘wang’]

  • Array.shift() 方法

//佇列方法 從陣列的開頭刪除第一個元素,並返回被刪除的元素
var arr = [‘conan’, ‘wang’, ‘king’];
console.log(arr.shift()); //[‘wang’, ‘king’]

  • Array.unshift() 方法

// 佇列方法, 在陣列的開頭新增一個後多個元素,並返回新的陣列長度
var arr = [‘conan’, ‘wang’, ‘king’];
console.log(arr.unshift(‘handsome’)); //[‘conan’, ‘wang’, ‘king’,‘handsome’]

  • Array.sort()方法

//重排序方法 //預設情況下是按照unicode編碼進行排序,
var arr = [1,2,5,3,6,7,4]
console.log(arr.sort(function(a,b) {return a-b})); //[1,2,3,4,5,6,7]

  • Array.reverse()方法

// 重排序方法 將陣列進行一個反轉陣列,並返回反轉陣列
var arr = [7,6,5,4,3,2,1]
console.log(arr.reverse()); //[1,2,3,4,5,6,7]

  • Array.concat() 方法

// 操作方法 :將陣列進行合併 並返回合併後的陣列
var num1 = [1,2,3], num2 = [4,5,6];
console.log(num1.concat(num2)); //[1,2,3,4,5,6]

  • Array.slice() 方法

// 操作方法: 拷貝陣列片段,不會改變原陣列,並返回選取的片段。
// Array.slice(startIndex, endIndex) / 不包括結束索引
var arr = [‘wang’, ‘conan’, ‘is’, ‘king’];
console.log(arr.slice(1, 2)); // [‘conan’]

  • Array.splice()方法

// 操作方法: 通過刪除或替換現有元素或在原陣列中新增新元素來修改陣列,以陣列的形式返回被修改的部分。
var arr = [‘wang’, ‘conan’, ‘deng’];
console.log(arr.splice(0,1)); //刪除 返回刪除的元素的陣列
console.log(arr.splice(1,0,‘dani’)); //插入 返回空陣列
console.log(arr.splice(1,1,‘dani’)); //替換 返回被刪除的陣列

  • Array.indexOf() 方法

// 位置方法:返回在陣列中可以找到一個給定元素的第一個索引,如果不存在,則返回-1.
// 引數: (需要查詢的元素/ 查詢的起點)
var arr = [‘wang’, ‘conan’,‘king’]
console.log(arr.indexOf(‘king’)); //2

  • Array.lastIndexOf()方法

// 位置方法: 反向查詢並返回在陣列中可以找到一個給定元素的第一個索引,如果不存在,則返回-1.

  • Array.every() 方法

// 迭代方法: Array.every(function(item, index, array) {}) 全true為true 返回true/false 檢測陣列的方法,可以傳入一個檢測函式作為 callback()

  • Array.some() 方法

// 迭代方法: Array.some(function(item, index, array) {}) 一true為true 返回true/false 只要有一個元素滿足條件,就立刻返回 true

  • Array.filter() 方法

// 迭代方法: Array.filter(function(item, index, array) {}) 返回基於測試函式 callback() 的返回值,篩選出原陣列中符合條件的元素,組成新陣列並返回; 不會修改原陣列,也不能提前結束遍歷

  • Array.forEach() 方法

// 迭代方法: Array.forEach(function(item, index, array) {}) 沒有返回值 相當於for迴圈 無法中止遍歷

  • Array.map() 方法

// 迭代方法: Array.map(function(item, index, array) {}) 返回重構陣列

  • Array.find() 方法

// 迭代方法: Array.find(function(item, index, array) {}) 返回滿足測試函式的元素陣列的的第一個值並終止遍歷 否則為undefined

  • Array.reduce() 方法

歸併方法:Array.reduce(function(acc, cur, index, array) {}, inintalValue) 返回計算結果 具有的累計器的功能。

相關文章