關於JS數組Array方法匯總
1.
Array
陣列的方法
#Mutator
方法—— —"突變方法"會改變陣列本身的值;Accessor
方法——"存取方法"不會改變陣列本身的值;Iteration
方法——"遍歷的方法" ;
##2.Mutator
方法
- ①
[ ].push
—
作用:將一個或多個元素加入陣列的結尾,
傳參:(單一或多個陣列元素);
傳回值:新陣列的長度;
//标准用法 arr.push(el1, el2 ……elN); //合并两个数组 [].push.apply(arr1, arr2)
登入後複製登入後複製 - ②
[ ].pop()
,
作用:刪除最後一個元素,
傳參:無;
傳回值:刪除的元素。
//标准用法 let a = [1 ,2 ,3 ]; a.pop();//3
登入後複製登入後複製 - ③
[ ].unshift
—
作用:將一個或多個元素加入到陣列的開頭,
傳參:(單一或多個陣列元素);
傳回值:新陣列的長度;
//标准用法 arr.unshift(el1, el2 ……elN);
登入後複製登入後複製 - ④
[].shift()
,
作用:刪除第一個元素,
傳參:無;
傳回值:刪除的元素。
//标准用法 let a = [1 ,2 ,3 ]; a.shift();//1
登入後複製登入後複製 - ⑤
[].reverse()
,
作用:陣列元素顛倒位置,
傳參:無;
傳回值:顛倒後的陣列。
//标准用法 arr.reverse()
登入後複製登入後複製 - ⑥
[].splice()
,
作用:陣列元素顛倒位置,
傳參:(索引,刪除個數【選】,要新增的元素【選】);
傳回值:被刪除的元素組成的一個陣列。
//标准用法 array.splice(start) array.splice(start, deleteCount) array.splice(start, deleteCount, item1, item2, ...)
登入後複製登入後複製 - ⑦
[].fill()
,
作用:用一個固定值填充一個陣列中從起始索引到終止索引內的全部元素,
傳參:(用來填入數組元素的值,起始索引【選】,終止索引【選】);
傳回值:修改後的陣列。
//标准用法 arr.fill(value) arr.fill(value, start) arr.fill(value, start, end) //例子 [1, 2, 3].fill(4) // [4, 4, 4] [1, 2, 3].fill(4, 1) // [1, 4, 4] [1, 2, 3].fill(4, 1, 2) // [1, 4, 3]
登入後複製登入後複製 - ⑧
[].sort()
,
作用:對陣列的元素進行排序,並傳回數組,
傳參考:(指定排列順序的函數【選】);
傳回值:排列後的陣列。
//标准用法 arr.sort() arr.sort(compareFunction) //例子 var numbers = [4, 2, 5, 1, 3]; numbers.sort(function(a, b) { return a - b; });// [1, 2, 3, 4, 5]
登入後複製登入後複製
3.Accessor
方法
- ①
[ ].join
—
作用:將陣列(或一個類別陣列物件)的所有元素連接到一個字串中。 ,
傳參:(指定一個字串來分隔數組的每個元素【選】);
傳回值:一個所有陣列元素連接的字串;
//标准用法 var a = ['Wind', 'Rain', 'Fire']; var myVar1 = a.join(); // myVar1的值变为"Wind,Rain,Fire" var myVar2 = a.join(', '); // myVar2的值变为"Wind, Rain, Fire"
登入後複製登入後複製 - ②
[ ].concat
—
作用:並兩個或多個陣列。 ,
傳參:(將陣列和/或值連接成新陣列【選】);
傳回值:合併後的陣列;
//标准用法 var alpha = ['a', 'b', 'c']; var numeric = [1, 2, 3]; alpha.concat(numeric); //['a', 'b', 'c', 1, 2, 3]
登入後複製 - #③
[ ].slice
—
作用:方法傳回一個從開始到結束(不包括結束)選擇的陣列的一部分淺拷貝到一個新陣列。 ,
傳參:(開始索引【選】,結束索引【選】);
傳回值:截去後的陣列;
//标准用法 var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']; var citrus = fruits.slice(1, 3); //['Orange','Lemon'] //类数组转数组 function list() { return [].slice.call(arguments)} var list1 = list(1, 2, 3); // [1, 2, 3]
登入後複製登入後複製 - ④
[ ].toString
—
作用:傳回字串,表示指定的陣列及其元素,
傳參:(無);
傳回值:轉換成的字串;(
=[].join())
//标准用法 var monthNames = ['Jan', 'Feb', 'Mar', 'Apr']; var myVar = monthNames.toString(); // assigns "Jan,Feb,Mar,Apr" to myVar.
登入後複製登入後複製 - ⑤
[ ].includes
—
作用:判斷陣列是否包含一個指定的值,
傳參:(要尋找的元素);
傳回值:true或false;
//标准用法 let a = [1, 2, 3]; a.includes(2); // true a.includes(4); // false
登入後複製登入後複製 - ⑥
[ ].indexOf
—
作用:在陣列中可以找到一個給定元素的第一個索引,
傳參:(要找的元素);
回傳值:找不到-1,找到索引;
var array = [2, 5, 9]; array.indexOf(2); // 0 array.indexOf(7); // -1
登入後複製登入後複製
- 4.
Iteration
方法
—#①
[ ].forEach 作用- :每個元素執行一次提供的函數,
傳參
:(callback(當前元素,索引,該數組));
傳回值:無;
//标准用法 array.forEach(callback(currentValue, index, array){ //do something }, this)
登入後複製登入後複製②
#[ ].find—
作用:傳回數組中滿足提供的測試函數的第一個元素的值, 傳參 - :(callback(當前元素,索引,該數組));
返回值
:該元素;(
[]. findIndex()返回索引)
//标准用法 array. find(callback(currentValue, index, array){ //do something }, this)
登入後複製③
[ ].filter—###作用###:建立一個新陣列, 其包含通過所提供函數實現的測試的所有元素,###傳參###:(callback(當前元素,索引,該數組));###返回值###:通過測試的元素的集合的數組; ###//标准用法 let arr = array. filter(callback(currentValue, index, array){ //do something }, this)
登入後複製 ④
[ ].map
—作用
:创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。,传参
:(callback(当前元素,索引,该数组));返回值
:一个新数组,每个元素都是回调函数的结果;//标准用法 var numbers = [1, 4, 9]; var roots = numbers.map(Math.sqrt); // roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]
登入後複製登入後複製⑤
[ ].every
—作用
:测试数组的所有
元素是否都通过了指定函数的测试;传参
:(callback(当前元素,索引,该数组));返回值
:true
或false
;//标准用法 function isBigEnough(element, index, array) { return (element >= 10);} var passed = [12, 5, 8, 130, 44].every(isBigEnough);// passed is false passed = [12, 54, 18, 130, 44].every(isBigEnough);// passed is true
登入後複製登入後複製⑥
[ ].some
—作用
:测试数组的某些
元素是否都通过了指定函数的测试;传参
:(callback(当前元素,索引,该数组));返回值
:true
或false
;//标准用法 function isBigEnough(element, index, array) { return (element >= 10);} var passed = [1, 5, 8, 3, 4].some(isBigEnough);// passed is false passed = [2, 4, 18, 13, 4].some(isBigEnough);// passed is true
登入後複製登入後複製⑦
[ ].reduce
—作用
:对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值;传参
:(callback(累加器accumulator,当前元素,索引,该数组));返回值
:函数累计处理的结果;//标准用法 var total = [0, 1, 2, 3].reduce(function(sum, value) { return sum + value; }, 0);// total is 6 var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) { return a.concat(b);}, []); // flattened is [0, 1, 2, 3, 4, 5]
登入後複製登入後複製⑧
[ ].entries
—作用
:返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对;传参
:(无));返回值
:一个新的 Array 迭代器对象;//标准用法 var arr = ["a", "b", "c"]; var iterator = arr.entries();// undefined console.log(iterator);// Array Iterator {} console.log(iterator.next().value); // [0, "a"] console.log(iterator.next().value); // [1, "b"] console.log(iterator.next().value); // [2, "c"]
登入後複製登入後複製⑨
[ ].values
—作用
:数组转对象;传参
:(无));返回值
:一个新的 Array 迭代器对象;//标准用法 let arr = ['w', 'y', 'k', 'o', 'p']; let eArr = arr.values();// 您的浏览器必须支持 for..of 循环 // 以及 let —— 将变量作用域限定在 for 循环中 for (let letter of eArr) { console.log(letter);}
登入後複製登入後複製Mutator
方法————"突变方法"会改变数组自身的值;Accessor
方法————"访问方法"不会改变数组自身的值;Iteration
方法————"遍历的方法" ;①
[ ].push
—作用
:将一个或多个元素添加到数组的末尾,传参
:(单个或多个数组元素);返回值
:新数组的长度;//标准用法 arr.push(el1, el2 ……elN); //合并两个数组 [].push.apply(arr1, arr2)
登入後複製登入後複製②
[].pop()
,作用
:删除最后一个元素,传参
:无;返回值
:删除的元素。//标准用法 let a = [1 ,2 ,3 ]; a.pop();//3
登入後複製登入後複製③
[ ].unshift
—作用
:将一个或多个元素添加到数组的开头,传参
:(单个或多个数组元素);返回值
:新数组的长度;//标准用法 arr.unshift(el1, el2 ……elN);
登入後複製登入後複製④
[].shift()
,作用
:删除第一个元素,传参
:无;返回值
:删除的元素。//标准用法 let a = [1 ,2 ,3 ]; a.shift();//1
登入後複製登入後複製⑤
[].reverse()
,作用
:数组元素颠倒位置,传参
:无;返回值
:颠倒后的数组。//标准用法 arr.reverse()
登入後複製登入後複製⑥
[].splice()
,作用
:数组元素颠倒位置,传参
:(索引,删除个数【选】,要添加的元素【选】);返回值
:被删除的元素组成的一个数组。//标准用法 array.splice(start) array.splice(start, deleteCount) array.splice(start, deleteCount, item1, item2, ...)
登入後複製登入後複製⑦
[].fill()
,作用
:用一个固定值填充一个数组中从起始索引到终止索引内的全部元素,传参
:(用来填充数组元素的值,起始索引【选】,终止索引【选】);返回值
:修改后的数组。//标准用法 arr.fill(value) arr.fill(value, start) arr.fill(value, start, end) //例子 [1, 2, 3].fill(4) // [4, 4, 4] [1, 2, 3].fill(4, 1) // [1, 4, 4] [1, 2, 3].fill(4, 1, 2) // [1, 4, 3]
登入後複製登入後複製⑧
[].sort()
,作用
:对数组的元素进行排序,并返回数组,传参
:(指定排列顺序的函数【选】);返回值
:排列后的数组。//标准用法 arr.sort() arr.sort(compareFunction) //例子 var numbers = [4, 2, 5, 1, 3]; numbers.sort(function(a, b) { return a - b; });// [1, 2, 3, 4, 5]
登入後複製登入後複製①
[ ].join
—作用
:将数组(或一个类数组对象)的所有元素连接到一个字符串中。,传参
:(指定一个字符串来分隔数组的每个元素【选】);返回值
:一个所有数组元素连接的字符串;//标准用法 var a = ['Wind', 'Rain', 'Fire']; var myVar1 = a.join(); // myVar1的值变为"Wind,Rain,Fire" var myVar2 = a.join(', '); // myVar2的值变为"Wind, Rain, Fire"
登入後複製登入後複製②
[ ].concat
—作用
:并两个或多个数组。,传参
:(将数组和/或值连接成新数组【选】);返回值
:合并后的数组;//标准用法 var alpha = ['a', 'b', 'c']; var numeric = [1, 2, 3]; alpha.concat(numeric); //['a', 'b', 'c', 1, 2, 3]
登入後複製③
[ ].slice
—作用
:方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组。,传参
:(开始索引【选】,结束索引【选】);返回值
:截去后的数组;//标准用法 var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']; var citrus = fruits.slice(1, 3); //['Orange','Lemon'] //类数组转数组 function list() { return [].slice.call(arguments)} var list1 = list(1, 2, 3); // [1, 2, 3]
登入後複製登入後複製④
[ ].toString
—作用
:返回一个字符串,表示指定的数组及其元素,传参
:(无);返回值
:转化成的字符串;(=[].join()
)//标准用法 var monthNames = ['Jan', 'Feb', 'Mar', 'Apr']; var myVar = monthNames.toString(); // assigns "Jan,Feb,Mar,Apr" to myVar.
登入後複製登入後複製⑤
[ ].includes
—作用
:判断一个数组是否包含一个指定的值,传参
:(要查找的元素);返回值
:true或 false;//标准用法 let a = [1, 2, 3]; a.includes(2); // true a.includes(4); // false
登入後複製登入後複製⑥
[ ].indexOf
—作用
:在数组中可以找到一个给定元素的第一个索引,传参
:(要查找的元素);返回值
:找不到-1,找得到索引;var array = [2, 5, 9]; array.indexOf(2); // 0 array.indexOf(7); // -1
登入後複製登入後複製①
[ ].forEach
—作用
:每个元素执行一次提供的函数,传参
:(callback(当前元素,索引,该数组));返回值
:无;//标准用法 array.forEach(callback(currentValue, index, array){ //do something }, this)
登入後複製登入後複製②
[ ].find
—作用
:返回数组中满足提供的测试函数的第一个元素的值,传参
:(callback(当前元素,索引,该数组));返回值
:该元素;([].findIndex()
返回索引)//标准用法 array. find(callback(currentValue, index, array){ //do something }, this)
登入後複製③
[ ].filter
—作用
:创建一个新数组, 其包含通过所提供函数实现的测试的所有元素,传参
:(callback(当前元素,索引,该数组));返回值
:通过测试的元素的集合的数组;//标准用法 let arr = array. filter(callback(currentValue, index, array){ //do something }, this)
登入後複製④
[ ].map
—作用
:创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。,传参
:(callback(当前元素,索引,该数组));返回值
:一个新数组,每个元素都是回调函数的结果;//标准用法 var numbers = [1, 4, 9]; var roots = numbers.map(Math.sqrt); // roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]
登入後複製登入後複製⑤
[ ].every
—作用
:测试数组的所有
元素是否都通过了指定函数的测试;传参
:(callback(当前元素,索引,该数组));返回值
:true
或false
;//标准用法 function isBigEnough(element, index, array) { return (element >= 10);} var passed = [12, 5, 8, 130, 44].every(isBigEnough);// passed is false passed = [12, 54, 18, 130, 44].every(isBigEnough);// passed is true
登入後複製登入後複製⑥
[ ].some
—作用
:测试数组的某些
元素是否都通过了指定函数的测试;传参
:(callback(当前元素,索引,该数组));返回值
:true
或false
;//标准用法 function isBigEnough(element, index, array) { return (element >= 10);} var passed = [1, 5, 8, 3, 4].some(isBigEnough);// passed is false passed = [2, 4, 18, 13, 4].some(isBigEnough);// passed is true
登入後複製登入後複製⑦
[ ].reduce
—作用
:对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值;传参
:(callback(累加器accumulator,当前元素,索引,该数组));返回值
:函数累计处理的结果;//标准用法 var total = [0, 1, 2, 3].reduce(function(sum, value) { return sum + value; }, 0);// total is 6 var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) { return a.concat(b);}, []); // flattened is [0, 1, 2, 3, 4, 5]
登入後複製登入後複製⑧
[ ].entries
—作用
:返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对;传参
:(无));返回值
:一个新的 Array 迭代器对象;//标准用法 var arr = ["a", "b", "c"]; var iterator = arr.entries();// undefined console.log(iterator);// Array Iterator {} console.log(iterator.next().value); // [0, "a"] console.log(iterator.next().value); // [1, "b"] console.log(iterator.next().value); // [2, "c"]
登入後複製登入後複製⑨
[ ].values
—作用
:数组转对象;传参
:(无));返回值
:一个新的 Array 迭代器对象;//标准用法 let arr = ['w', 'y', 'k', 'o', 'p']; let eArr = arr.values();// 您的浏览器必须支持 for..of 循环 // 以及 let —— 将变量作用域限定在 for 循环中 for (let letter of eArr) { console.log(letter);}
登入後複製登入後複製
参考资料:https://developer.mozilla.org...
1.
Array
数组的方法
2.
Mutator
方法
3.
Accessor
方法
4.
Iteration
方法
以上是關於JS數組Array方法匯總的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用foreach循環移除PHP數組中重複元素的方法如下:遍歷數組,若元素已存在且當前位置不是第一個出現的位置,則刪除它。舉例而言,若資料庫查詢結果有重複記錄,可使用此方法移除,得到不含重複記錄的結果。

PHP中深度複製數組的方法包括:使用json_decode和json_encode進行JSON編碼和解碼。使用array_map和clone進行深度複製鍵和值的副本。使用serialize和unserialize進行序列化和反序列化。

PHP數組鍵值翻轉方法效能比較顯示:array_flip()函數在大型數組(超過100萬個元素)下比for迴圈效能更優,耗時更短。手動翻轉鍵值的for迴圈方法耗時相對較長。

多維數組排序可分為單列排序和嵌套排序。單列排序可使用array_multisort()函數依列排序;巢狀排序需要遞歸函數遍歷陣列並排序。實戰案例包括按產品名稱排序和按銷售量和價格複合排序。

PHP的array_group_by函數可依鍵或閉包函數將陣列中的元素分組,傳回關聯數組,其中鍵為組名,值是屬於該組的元素數組。

在PHP中執行陣列深度複製的最佳實踐是:使用json_decode(json_encode($arr))將陣列轉換為JSON字串,然後再轉換回陣列。使用unserialize(serialize($arr))將陣列序列化為字串,然後將其反序列化為新陣列。使用RecursiveIteratorIterator迭代器對多維數組進行遞歸遍歷。

PHP的array_group()函數可用來按指定鍵對陣列進行分組,以尋找重複元素。函數透過以下步驟運作:使用key_callback指定分組鍵。可選地使用value_callback確定分組值。對分組元素進行計數並識別重複項。因此,array_group()函數對於尋找和處理重複元素非常有用。

PHP數組合併去重演算法提供了平行的解決方案,將原始陣列分成小塊並行處理,主進程合併區塊的結果去重。演算法步驟:分割原始數組為均等分配的小塊。並行處理每個區塊去重。合併區塊結果並再次去重。
