在JavaScript開發過程中,常用的陣列方法有哪些?下面YJBYS小編為你一一介紹!
修改陣列
- 刪除陣列最後一位元素。
var arr = [1, 2, 3];();// 返回 3arr;// [1,2]
t - 刪除陣列第一位元素。
var arr = [1, 2, 3];t();// 返回 1arr;// [2,3]
- 往陣列的末尾新增一個或多個元素。
var arr = [];(1);// 返回陣列長度 1arr;// [1](2,3);arr;// [1,2,3]
ift - 往陣列的`開頭新增一個或多個元素。
var arr = [1, 2, 3];ift(0);ift(-1, -2);arr;// [-1, -2, 0, 1, 2]
rse - 把陣列元素順序逆轉。
var arr = [1, 2, 3];rse();// [3, 2, 1]arr;// [3, 2, 1]
- 陣列排序。
var arr = [1 ,-1, 2];();// [-1, 1, 2]arr;// [-1, 1, 2]arr = [{age: 10,},{age: 1}, {age: 12}];// 按照 age 從小到大排序(function(a, b){return - > 0 ? 1 : -1;});
ce - 給陣列新增或者刪除元素。
// splice(開始下標, 刪除個數,插入元素(可以多個))var arr = [1, 2, 3, 4];ce(1, 2);// [2,3]arr;// [1,4]arr = [1, 2, 3, 4];ce(1, 2, 'a', 'b', 'c');// [2,3]arr;// [1, "a", "b", "c", 4]
注意:當陣列執行上面的這些方法時,都會修改原陣列。
迭代方法
ach - 遍歷陣列。
['a' ,'b' ,'c']ach(function(each, index){(each,index);});// 輸出 'a' 0 'b' 1 'c' 2
er - 從陣列中找出所有符合指定條件的元素。
// 找出所有正數var res = [3, 4, -1]er(function(each){return each > 0;});res; //[3,4]
y - 陣列中是否每個元素都滿足指定的條件。
// 是否都為正數var isAllPositive = [3, 4, -1]y(function(each){return each > 0;});isAllPositive; // false;isAllPositive = [3, 4]y(function(each){return each > 0;});isAllPositive; // true;
- 陣列中是否有元素滿足指定的條件。
// 是否有正數var isSomePositive = [3, 4, -1](function(each){return each > 0;});isSomePositive; // true;isSomePositive = [-3, -4]y(function(each){return each > 0;});isSomePositive; // false;
- 將陣列對映成另一個數組。
// 內容 * 2[1, 2, 3](function(each){return each * 2;});// 返回 [2, 4, 6]
ce - 將數組合成一個值。
// 陣列內容求和。0 為初始值[1, 2, 3]ce(function(prev, each){return prev + each;}, 0);// 返回 6
當要使用迭代方法時,forEach 應該是最後被考慮的。主要原因是:forEach 與其他迭代方法比,語義性是最差的。更詳細的說明見 avoid forEach。
網址:
注意 IE8 及以下版本不支援 every, some, map, reduce。如果想在 IE 8 及以下版本用這幾個方法,可以用es5-shim 或 lodash。
其他方法
ray - 是否是陣列。IE9+ 支援該方法。
ray(3); // ray({}); // ray([]); // true
at - 合併陣列或合併陣列的值。
[1,2,3]at(4,5); // 輸出 [1, 2, 3, 4, 5]
- 合併陣列所有元素拼接成字串。
[1,2,3](); // 輸出 '1,2,3'[1,2,3]('@'); // 輸出 '1@2@3'
e - 選擇陣列中的一部分元素。
// slice(開始下標, 結束下標(可選,預設為陣列長度))['a', 'b', 'c', 'd']e(1);// ["b", "c", "d"]['a', 'b', 'c', 'd']e(1, 2);// ["b"]['a', 'b', 'c', 'd']e(1, 3);// ["b", "c"]
xOf - 查詢陣列中指定元素的下標。
['a', 'b', 'c', 'd']xOf('c'); // 2['a', 'b', 'c', 'd']xOf('g'); // -1
IndexOf - 查詢陣列中指定元素的下標。查詢方向為從後往前。
['c', 'd', 'c']IndexOf('c'); // 2['a', 'b', 'c', 'd']IndexOf('g'); // -1