js陣列常用方法總結
少看微博,多看部落格!
一、首先建立陣列
1.使用建構函式:
var arr = new Array();
var arr = new Array("a","b");
2.直接定義
var arr = ["a","b"];
二、常用方法
常用方法大概以下幾種:splice(),slice(),join(),push(),pop(),shift() ,unshift(),sort(),reverse(),concat(),indexOf(), lastIndexOf() ,forEach() ,map() ,filter(),every() ,some() ,reduce()和 reduceRight()
1.最近用的比較多的就是splice(),對陣列進行插入,刪除或者替換。原來的陣列會被改變!
語法:arr.splice(index,n,item)
index: 必需,整數,規定新增/刪除專案的位置。如果是負數,那麼它規定從陣列尾部開始算起的位置。也就是說,-1 指最後一個元素,-2 指倒數第二個元素,以此類推。
n: 必需。要刪除的專案數量。如果設定為 0,則不會刪除專案。
item: 可選,向陣列新增的新專案
- 插入元素:
var arr = ["a","b","c","d","e","f","g"];
- 在c之前插入三個元素:
arr.splice(2,0,"1","2","3");
- 此時陣列 arr: [“a”, “b”, “1”, “2”, “3”, “c”, “d”, “e”, “f”, “g”];
- 刪除元素:
- 想把arr=[“a”, “b”, “1”, “2”, “3”, “c”, “d”, “e”, “f”, “g”]; e後面的元素都刪除,
arr.splice(7,3)
- 此時:arr: [“a”, “b”, “1”, “2”, “3”, “c”, “d”];
- 替換元素:
- 比如把cd 替換成4,5,6如下:
arr.splice(5,2,"4","5","6")
- 此時:陣列arr :[“a”, “b”, “1”, “2”, “3”, “4”, “5”, “6”];
2. slice() 方法在陣列中讀取元素,不會改變原始陣列
語法:arr.slice(start, end);
start:可選,開始位置;end:可選,終止位置.
var arr=["a", "b", "c", "d", "e", "f", "g"];
arr.slice(1,3);
//返回 ["b", "c"];
arr.slice(-3,-1);
//返回 ["e", "f"]
3.join() 方法用於把陣列中的所有元素放入一個字串。元素是通過指定的分隔符進行分隔的。
arr.join(separator);
separator: 可選。分隔符,不寫的話預設是逗號。
var arr=["a", "b", "c", "d", "e", "f", "g"];
arr.join();
//返回"a,b,c,d,e,f,g"
arr.join(";");
//返回"a;b;c;d;e;f;g"
4.push(),pop 和unshift()、shift()**
這兩組同為對陣列的操作,並且會改變陣列的本身的長度及內容。
不同的是 push()、pop() 是從陣列的尾部進行增減,unshift()、shift() 是從陣列的頭部進行增減。
//原陣列長度為7
var arr=["a", "b", "c", "d", "e", "f", "g"];
arr.push("hi");
//返回 8
//此時 arr :["a", "b", "c", "d", "e", "f", "g", "hi"]
arr.pop()
//返回 "hi"
arr.push("j","k","l");
//返回 10
//此時 arr :["a", "b", "c", "d", "e", "f", "g", "j", "k", "l"]
可以看出,push,pop是從陣列的尾部進行增減,且
push()向陣列的 尾部 新增若干元素,並返回陣列的新長度;
pop()從陣列的 尾部刪除1個元素(刪且只刪除1個),並返回被刪除的元素;空陣列是繼續刪除,不報錯,但返回undefined;
//原陣列長度為7
var arr=["a", "b", "c", "d", "e", "f", "g"];
arr.unshift("1","2");
//返回 9
//此時 arr :["1", "2", "a", "b", "c", "d", "e", "f", "g"]
arr.shift();
//返回 "1"
//此時 arr :["2", "a", "b", "c", "d", "e", "f", "g"]
unshift() shift() ,分別是從頭部增加,刪除元素,且unshift()向陣列的 頭部 新增若干元素,並返回陣列的新長度;
shift()從陣列的 頭部刪除1個元素(刪且只刪除1個),並返回被刪除的元素;
5.concat()
concat() 方法用於連線兩個或多個陣列.返回一個新的陣列。該方法不會改變現有的陣列
var a=["a","b"];
var b=["c","d"];
var ab=a.concat(b);
//ab: ["a", "b", "c", "d"]
//a: ["a", "b"]
//b: ["c", "d"]
concat()和push區別在於concat()是先把原陣列複製到一個新的陣列,然後在新陣列上進行操作。不會改變原有陣列
6.sort() :用於對陣列的元素進行排序。
語法:arrayObject.sort(sortby),sortby 必須是函式,規定排序順序。
返回值:對陣列的引用。陣列在原陣列上進行排序,不生成副本。即該方法會改變原陣列。
(a-b輸出從小到大排序,b-a輸出從大到小排序);
$scope.mysortNum = function(a,b){
return a - b
}
$scope.sortNum = function(){
var a=["1","100","38","45","25","66"];
a.sort($scope.mysortNum);
document.write(a);
//輸出["1", "25", "38", "45", "66", "100"]
}
$scope.mysortNum = function(a,b){
return b - a
}
$scope.sortNum = function(){
var a=["1","100","38","45","25","66"];
a.sort($scope.mysortNum);
document.write(a);
//輸出["100", "66", "45", "38", "25", "1"]
}
$scope.sortNum();
7. reverse() 用於顛倒陣列中元素的順序,會改變原來的陣列,而不會建立新的陣列。
var a=["a","b","c"]
a.reverse()
//返回結果 ["c", "b", "a"]
//返回結果 a: ["c", "b", "a"]
8. indexOf(item,start) 返回某個指定的字串值在陣列中-首-次出現的位置。
item: 必須。查詢的元素。
start : 可選的整數引數。規定在字串中開始檢索的位置。它的合法取值是 0 到arr.length - 1。如省略該引數,則將從字元 串的首字元開始檢索。
lastIndexOf : 返回字串最後出現的位置。
var a=["a","b","c","a","mm","1"]
a.indexOf("a")
//返回 0
a.indexOf("c")
//返回2
a.lastIndexOf("a")
//返回3
a.indexOf("1")
//返回5
a.indexOf(1)
//返回-1
9. forEach()
[].forEach(function(value, index, array) {
// ...
});
10. map() 通過指定函式處理陣列的每個元素,並返回處理後的陣列.map() 不會改變原始陣列。
$scope.mapNum = function(){
var b=[0,2,4,6,8];
var c= b.map(function (val,index,arr) {
return val / 2;
},this);
console.log(b);//返回 [0, 2, 4, 6, 8]
console.log(c);//返回 [0, 1, 2, 3, 4]
}
$scope.mapNum();
forEach和map() 的區別在於,forEach() 沒有返回值。map 有返回值,可以return 出來。
11. filter() 檢測數值元素,並返回符合條件所有元素的陣列。 filter() 不會改變原始陣列。
every() 檢測數值元素的每個元素是否都符合條件。返回true/false。 every() 不會改變原始陣列。
如果陣列中檢測到有一個元素不滿足,則整個表示式返回 false ,且剩餘的元素不會再進行檢測。
如果所有元素都滿足條件,則返回 true。
some() 方法用於檢測陣列中的元素是否滿足指定條件。返回true/false。some() 不會改變原始陣列。
如果有一個元素滿足條件,則表示式返回true , 剩餘的元素不會再執行檢測。
如果沒有滿足條件的元素,則返回false。
$scope.forNum = function(){
var b=[0,2,9,6,10,1,66,12];
var a = b.filter(function (val,index,arr) {
return val >10;
},this);
console.log(a);
//輸出: [66, 12]
var A = b.every(function (val,index,arr) {
return val >10;
},this);
console.log(A);
//輸出:false
var B = b.some(function (val,index,arr) {
return val >10;
},this);
console.log(B);
//輸出:true
}
$scope.forNum();
12. reduce()和 reduceRight()
reduce() : 將陣列元素計算為一個值(從左到右)。
reduceRight(): 將陣列元素計算為一個值(從右到左)。
語法:
array.reduce(function(preValue, currentValue, currentIndex, arr){
}, initialValue)
function(preValue,currentValue, index,arr) :必需。用於執行每個陣列元素的函式。
preValue: 必需。初始值, 或者計算結束後的返回值。如果向 reduce 方法提供 initialValue,則在首次呼叫函式時,previousValue 為 initialValue。
currentValue: 必需。當前元素
currentIndex: 可選。當前元素的索引
arr: 可選。當前元素所屬的陣列物件。
initialValue:可選。傳遞給函式的初始值
$scope.forNum = function(){
var arr = [0,1,2,3,4];
var sum= arr.reduce(function (preValue,curValue,index,array) {
console.log(preValue,curValue);
return preValue + curValue;
}); // 10
console.log(sum);
//輸出log分別為:1 2,3 3,6 4,10
}
$scope.forNum();
$scope.forNum = function(){
var arr = [0,1,2,3,4];
var sum= arr.reduce(function (preValue,curValue,index,array) {
console.log(preValue,curValue);
return preValue + curValue;
},10); // 20
console.log(sum);
//輸出分別為:10 0,10 1,11 2,13 3,16 4,20
}
$scope.forNum();
$scope.forNum = function(){
var arr = [0,1,2,3,4];
var sum= arr.reduceRight(function (preValue,curValue,index,array) {
console.log(preValue,curValue);
return preValue + curValue;
}); // 10
console.log(sum);
//輸出分別為:4 3,7 2,9 1,10 0,10
}
$scope.forNum();
相關文章
- JS 陣列中常用方法總結JS陣列
- js中陣列常用方法總結JS陣列
- js與jquery常用陣列方法總結JSjQuery陣列
- JS常用陣列方法總結筆記JS陣列筆記
- JS陣列方法總結JS陣列
- js陣列去重的三種常用方法總結JS陣列
- JS-陣列方法總結JS陣列
- 陣列中常用的方法總結陣列
- js常用陣列方法JS陣列
- js常用的陣列方法JS陣列
- JS陣列API總結JS陣列API
- 常用js方法總結:JS
- javascript陣列方法總結JavaScript陣列
- JS實現陣列去重方法總結(六種方法)JS陣列
- 陣列的三種宣告方式總結、多維陣列的遍歷、Arrays類的常用方法總結陣列
- 紅寶書總結-js陣列的相關方法JS陣列
- JavaScript陣列方法總結(中)JavaScript陣列
- 陣列去重方法總結陣列
- js 陣列的方法小結JS陣列
- JS中字串和陣列的常用方法JS字串陣列
- javascript常用陣列演算法總結JavaScript陣列演算法
- 常用陣列方法陣列
- 陣列常用方法陣列
- JavaScript陣列去重方法總結JavaScript陣列
- 所有陣列的方法(api)總結陣列API
- JS常用陣列操作JS陣列
- JS 常用方法總結記錄JS
- js陣列操作方法小結JS陣列
- 三種常用的js陣列去重方法JS陣列
- JS陣列Array的全部方法彙總JS陣列
- 常用陣列方法梳理陣列
- 陣列常用的方法陣列
- 陣列的常用方法陣列
- 陣列常用物件方法陣列物件
- javascript陣列常用方法JavaScript陣列
- js 陣列方法JS陣列
- JavaScript陣列常用方法解析和深層次js陣列扁平化JavaScript陣列JS
- js字串與陣列常用方法速查.個人筆記JS字串陣列筆記