JavaScript數組方法大全 趁著有時間,總結了下數組所有的屬性和方法,記錄博客,便於後續使用 at() at方法,用於獲取數組中,對應索引位置的值,不能修改。 語法:array.at(count); 參數:count,數組的索引值 返回值:返回該索引在數組中對應的值,如果count大於等於數組 ...
JavaScript數組方法大全
趁著有時間,總結了下數組所有的屬性和方法,記錄博客,便於後續使用
-
at()
- at方法,用於獲取數組中,對應索引位置的值,不能修改。
- 語法:array.at(count);
- 參數:count,數組的索引值
- 返回值:返回該索引在數組中對應的值,如果count大於等於數組的長度時,返回undefined
-
const arr = [1,2,3,4,5,6,7,8,9,10]; const len = arr.at(1) console.log(len);// 2
-
concat()
-
- concat方法用於連接兩個或多個數組
- 語法:array.concat(arr1,arr2,arr...);
- 參數: arr1, ...arrx,可選。該參數可以是具體的值,也可以是數組對象。可以是任意多個。參數為空時,將拷貝調用該方法的數組作為副本返回。
- 返回值:Array,返回一個新的數組。該數組是通過把所有 arrayX 參數添加到 arrayObject 中生成的。如果要進行 concat() 操作的參數是數組,那麼添加的是數組中的元素,而不是數組。
-
const arr = [1,2,3,4,5,6,7,8,9,10]; const arr1 = arr.concat(); const arr2 = arr.concat(['我是lanny',12],['嘿嘿'],'啦啦啦'); console.log(arr1);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; console.log(arr2);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, '我是lanny', 12, '嘿嘿', '啦啦啦'];
-
constructor
- constructor屬性,返回數組的構造函數,其返回值是對函數的引用,而不是函數的名稱,對於 JavaScript 數組,constructor 屬性返回function Array() { [native code] },對於 JavaScript 對象,constructor 屬性返回:function Object() { [native code] }
- 可以通過如下形式,對數據的類型進行判斷
const arr = [1,2,3]
console.log(arr.constructor === Array);// true
-
copyWithin
- copyWithin用於從數組的指定位置拷貝元素到數組的另一個指定位置中。
- 語法:array.copyWithin(target, start, end)
- 參數:target-必需。複製到指定目標索引位置。start-可選。元素複製的起始位置。end-可選。停止複製的索引位置 (預設為 array.length)。如果為負值,表示倒數。
- 註意,該方法會改變原數組
-
const arr = [1,2,3,4,5,6,7,8,9,10]; arr.copyWithin(0,4,9); console.log(arr);// [5, 6, 7, 8, 9, 6, 7, 8, 9, 10]
-
entries()
- entries方法返回一個數組的迭代對象,該對象包含數組的鍵值對 (key/value)。迭代對象中數組的索引值作為 key, 數組元素作為 value.
- 語法:array.entries()
- 返回值:Array Iterator一個數組的迭代對象。
-
const arr = ['lanny','jhon','alex','emily'].entries(); for (const [key,value] of arr) { console.log(key,value) } //0 'lanny' //1 'jhon' //2 'alex' //3 'emily'
-
every()
- every方法用於檢測數組所有元素是否都符合指定條件, 指定函數檢測數組中的所有元素:如果數組中檢測到有一個元素不滿足,則整個表達式返回 false ,且剩餘的元素不會再進行檢測。如果所有元素都滿足條件,則返回 true。
- 語法:array.every(function(currentValue, index,arr),thisValue);
- 註意: every() 不會對空數組進行檢測。every() 不會改變原始數組。
- 參數:
- function(currentValue, index,arr)
- 必須。函數,數組中的每個元素都會執行這個函數。
- currentValue:必須。每次遍歷迴圈時,當前元素的值。
- index-可選。當前元素的索引值。
- arr-可選。當前元素屬於的數組對象。
- thisValue 可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined"。
- function(currentValue, index,arr)
- 返回值:boolean,true或者false。
-
const arr = [1,2,3,4,5,6,7,8,9,10]; const condition = arr.every(function(currentValue,index,arr){ console.log(this);//arr return typeof currentValue === 'number' },arr) console.log(condition) // true
-
fill()
- fill方法用於將一個固定值替換數組的元素。
- 語法:array.fill(value,start,end);
- 參數:value-必需。填充的值。start-可選。開始填充位置。end-可選。停止填充位置 (預設為 array.length)。
- 返回值:Array,返回新替換的值作為數組的唯一項。
- 註意:該方法會改變原數組
-
const arr = [1,2,3,4,5,6,7,8,9,10]; const arr1 = arr.fill('嘟嘟',0,1); console.log(arr);//['嘟嘟', 2, 3, 4, 5, 6, 7, 8, 9, 10] console.log(arr1);//['嘟嘟']
-
filter()
- filter方法用於過濾,返回指定函數中要求的條件,filter() 不會改變原始數組、不會對空數組進行檢測。
- 語法:array.filter(function(currentValue,index,arr), thisValue);
- 參數:
- function(currentValue, index,arr)
- 必須。函數,數組中的每個元素都會執行這個函數。
- currentValue:必須。每次遍歷迴圈時,當前元素的值。
- index-可選。當前元素的索引值。
- arr-可選。當前元素屬於的數組對象。
- thisValue 可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined"。
- function(currentValue, index,arr)
- 返回值:Array,返回一個新數組,滿足所執行的函數條件
-
const arr = [1,2,3,"啦啦",6,7,"小L",9,10]; const arr1 = arr.filter((item)=>typeof item === 'string'); console.log(arr1);//["啦啦", "小L"]
-
find()
- find方法返回通過測試(函數內判斷)的數組的第一個元素的值。find() 方法為數組中的每個元素都調用一次函數執行:當數組中的元素在測試條件時返回 true 時, find() 返回符合條件的元素,之後的值不會再調用執行函數。如果沒有符合條件的元素返回 undefined。註意: find() 對於空數組,函數是不會執行的、 find() 並沒有改變數組的原始值。
- 語法:array.find(function(currentValue,index,arr), thisValue);
- 參數:
- function(currentValue, index,arr)
- 必須。函數,數組中的每個元素都會執行這個函數。
- currentValue:必須。每次遍歷迴圈時,當前元素的值。
- index-可選。當前元素的索引值。
- arr-可選。當前元素屬於的數組對象。
- thisValue 可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined"。
- function(currentValue, index,arr)
- 返回值:any,任意類型,滿足函數條件的第一個對應值,如果都不滿足,返回undefined。
-
const arr = [1,2,3,4,5,"嘟嘟",7,"嘿嘿",9,10]; const value = arr.find((item)=>typeof item === 'number'));//2 console.log(value);// 1
-
findIndex()
- findIndex方法返回傳入一個測試條件(函數)符合條件的數組第一個元素位置。方法為數組中的每個元素都調用一次函數執行:當數組中的元素在測試條件時返回 true 時, findIndex() 返回符合條件的元素的索引位置,之後的值不會再調用執行函數。如果沒有符合條件的元素返回 -1。註意: findIndex() 對於空數組,函數是不會執行的、findIndex() 並沒有改變數組的原始值。
- 語法:array.findIndex(function(currentValue, index, arr), thisValue);
- 參數:
- function(currentValue, index,arr)
- 必須。函數,數組中的每個元素都會執行這個函數。
- currentValue:必須。每次遍歷迴圈時,當前元素的值。
- index-可選。當前元素的索引值。
- arr-可選。當前元素屬於的數組對象。
- thisValue 可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined"。
- function(currentValue, index,arr)
- 返回值:number,索引值,返回符合條件的元素的索引位置,之後的值不會再調用執行函數。如果沒有符合條件的元素返回 -1。
-
const arr = [1,2,3,4,5,6,7,8,9,10]; const index = arr.findIndex((item=>item === 9); console.log(index);//8 註意,是索引位置
-
findLast()
- 該方法與find方法相同,唯一區別是,遍歷調用函數查找時,是倒序查找,從數組末尾,向前查找的
-
const arr = [1,2,3,4,5,6,7,8,9,10]; const last = arr.findLast((item)=>typeof item === 'number'); console.log(last);//10
-
findLastIndex()
- 該方法與findIndex方法相同,唯一區別是,遍歷調用函數查找時,是倒序查找,從數組末尾,向前查找的.
-
const arr = [1,2,3,4,5,6,7,8,9,10]; const lastIndex = arr.findLastIndex((item)=>typeof item === 'number'); console.log(lastIndex);//9 註意,是索引位置
-
flat()
- 該方法用於將嵌套的多維數組,轉換成一維數組,該方法會自動刪除,空的索引值,且不會改變原數組。
- 語法:array.flat(hierarchy)
- 參數值:hierarchy-數組的嵌套層級,number,或者 Infinity-不管嵌套多少層
- 返回值:Array,轉換之後的一維數組。
-
const arr = ['a',,[0,5,[18,29],['嘿嘿',{key:'002'}]]]; const arr1 = arr.flat(Infinity); console.log(arr1);//['a', 0, 5, 18, 29, '嘿嘿', {key:'002'}]
-
flatMap()
- 先對數組中每個元素進行處理,再對數組執行 flat() 方法。
- 語法:array.flatMap(function(currentValue,index,arr),thisValue);
- 參數:
- function(currentValue, index,arr)
- 必須。函數,數組中的每個元素都會執行這個函數。
- currentValue:必須。每次遍歷迴圈時,當前元素的值。
- index-可選。當前元素的索引值。
- arr-可選。當前元素屬於的數組對象。
- thisValue 可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined"。
- function(currentValue, index,arr)
- 返回值:Array,返回處理之後的數組。
-
const arr = ['a',,[0,5,[18,29],['嘿嘿',{key:'002'}]]] const arrFlat = arr.flatMap(item=>{ if(typeof item === 'string'){ return item + '已處理' }else{ return item } }) console.log(arrFlat);// ['a已處理', 0, 5, [18,29], ['嘿嘿',{key:'002']]
-
forEach()
- forEach().方法用於調用數組的每個元素,並將元素傳遞給回調函數,即遍曆數組,在函數中進行操作。forEach() 對於空數組是不會執行回調函數的。該方法沒有返回值,即undefined
- 語法:array.forEach(callbackFn(currentValue, index, arr), thisValue);
- 參數:
- function(currentValue, index,arr)
- 必須。函數,數組中的每個元素都會執行這個函數。
- currentValue:必須。每次遍歷迴圈時,當前元素的值。
- index-可選。當前元素的索引值。
- arr-可選。當前元素屬於的數組對象。
- thisValue 可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined"。
- function(currentValue, index,arr)
- 返回值:無,undefined。
-
const arr = [1,"嘟嘟",3,4,5,6,7,8,9,10]; arr.forEach((item,index)=>{ if(typeof item === 'number'){ arr[index] = item * 2 } }) console.log(arr);// [2, '嘟嘟', 6, 8, 10, 12, 14, 16, 18, 20]
-
indexOf()
- indexOf方法可返回數組中某個指定的元素位置。該方法將從頭到尾地檢索數組,看它是否含有對應的元素。開始檢索的位置在數組 start 處或數組的開頭(沒有指定 start 參數時)。如果找到一個 item,則返回 item 的第一次出現的位置。開始位置的索引為 0。如果在數組中沒找到指定元素則返回 -1。
- 語法:array.indexOf(item,start);
- 參數:item必須。查找的元素。start可選的整數參數。規定在數組中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該參數,則將從字元串的首字元開始檢索。
-
返回值:number,索引值,元素在數組中的位置,如果沒有搜索到則返回 -1。
const arr = ["嘟嘟",2,3,4,5,6,7,8,9,10]; const index = arr.indexOf('嘟嘟') console.log(index);// 0
-
lastIndexOf()
- lastIndexOf()方法可返回一個指定的元素在數組中最後出現的位置,從該字元串的後面向前查找。如果要檢索的元素沒有出現,則該方法返回 -1。該方法將從尾到頭地檢索數組中指定元素 item。開始檢索的位置在數組的 start 處或數組的結尾(沒有指定 start 參數時)。如果找到一個 item,則返回 item 從尾向前檢索第一個次出現在數組的位置。數組的索引開始位置是從 0 開始的。如果在數組中沒找到指定元素則返回 -1。
- 語法:array.lastIndexOf(item,start);
- 參數:item必需。規定需檢索的字元串值。start可選的整數參數。規定在字元串中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該參數,則將從字元串的最後一個字元處開始檢索。
- 返回值:number,索引值,元素在數組中的位置,如果沒有搜索到則返回 -1。
-
const arr = [0,1,2,4,1,5]; const index = arr.lastIndexOf(1); console.log(index);//4 索引位置,倒數
-
join()
- join()方法用於把數組中的所有元素轉換一個字元串。元素是通過指定的分隔符進行分隔的,該方法不會改變原數組。
- array.join(separator);
- 參數:separator可選。指定要使用的分隔符。如果省略該參數,則使用逗號作為分隔符。
- 返回值:String返回一個字元串。該字元串是通過把 arrayObject 的每個元素轉換為字元串,然後把這些字元串連接起來,在兩個元素之間插入 separator 字元串而生成的。
-
const arr = [1,2,3,4,'嘟嘟',6,7,8,9,10]; const arr1 = arr.join(''); console.log(arr1);// "1234嘟嘟678910"
-
keys()
- keys()方法用於從數組創建一個包含數組鍵的可迭代對象.如果對象是數組返回 true,否則返回 false。
- 返回值:一個數組可迭代對象。
-
const arr = ['lanny','jhon','alex','emily']; for (const item of arr.keys()) { console.log(item)// 數組的索引值,依次列印 0/1/2/3 }
-
includes()
- includes()方法用來判斷一個數組是否包含一個指定的值,如果是返回 true,否則false
- 語法:array.includes(searchElement, fromIndex);
- 參數:searchElement必須。需要查找的元素值。fromIndex可選。從該索引處開始查找 searchElement。如果為負值,則按升序從 array.length + fromIndex 的索引開始搜索。預設為 0,如果fromIndex大於等於數組長度,則返回 false,該數組不會被搜索。
- 返回值:布爾值。如果找到指定值返回 true,否則返回 false。
-
const arr = ['嘟嘟', 4, 6, 8, 10, 12, 14, 16, 18, 20]; console.log(arr.includes('嘟嘟'));// true