不推薦使用
var arr=new Array()
常用這種方式
var arr=[1,2,3,true,'abc',new date()];
JS中的數組長度并不固定,隨時可以添加和刪改元素
-
push:向數組尾部添加元素,返回值為數組新長度
var arr=[1,2,3];
var result=arr.push(1,2,3);
// [1,2,3,1,2,3]
-
pop:從數組尾部移除一個元素,返回值為移除的元素
var arr=[1,2,3];
var result=arr.pop();
// [1,2]
-
shift:從頭部移除一個元素,返回值為移除的元素
var arr=[1,2,3];
var result=arr.shift();
// [2,3]
-
unshift:從頭部插入多個元素,返回值為數組的長度
var arr=[1,2,3];
var result=arr.unshift('a','b');
// ['a','b',1,2,3]
-
splice:截取替代元素,返回被截取的元素
需要操作數組本身
p1:起始位置
p2:表示截取個數
p3及以后:表示替換的新元素
var arr=[1,2,3,4,5];
var result=arr.splice(1,2,'a');
// [1,'a',4,5]
-
slice:返回截取內容
不會對數組本身操作
p1p2:左閉右開區間
var arr=[1,2,3,4,5];
var result=arr.slice(1,3);
// [1,2,3,4,5]
// result:2,3
-
concat:合并數組,返回合并后的數組
不對原本數組進行操作
var arr1=[1,2,3,4,5];
var arr2=['a','b','c'];
var result=arr1.concat(arr2);
// result:1,2,3,4,5,a,b,c
-
join:在每個元素之間加入內容
不需要操作原數組
var arr=[1,2,3,4,5];
var result=arr.join('-');
// result:1-2-3-4-5
-
sort:正序排序
var arr=[1,2,5,6,3];
arr.sort();
// [1,2,3,5,6]
但是因為他按字符串排序
var arr=[1,2,5,10,3];
arr.sort();
// [1,10,2,3,5]
如果要按照大小排序
// 按升序排序
var arr=[1,2,5,10,3];
arr.sort(compare);
alert(arr);
function compare(value1,value2){
if (value1<value2){
return -1;
}else if(value1>value2){
return 1;
}else{
return 0;
}
}
// 1,2,3,5,10
// 按降序排序
var arr=[1,2,5,10,3];
arr.sort(compare);
alert(arr);
function compare(value1,value2){
if (value1<value2){
return 1;
}else if(value1>value2){
return -1;
}else{
return 0;
}
}
// 10,5,3,2,1
-
reverse:將數組倒過來
var arr=[1,2,3,4,5];
arr.reverse();
// [5,4,3,2,1]
-
indexOf:查找指定元素位置,返回在數組中的下標
stringObject.indexOf(searchvalue,fromindex)
從左開始
stringObject.lastIndexOf(searchvalue,fromindex)
從右開始
參數 | 描述 |
---|---|
searchvalue | 必需。規定需檢索的字符串值。 |
fromindex | 可選的整數參數。規定在字符串中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該參數,則將從字符串的首字符開始檢索。 |
-
every:方法使用指定函數檢測數組中的所有元素
- 如果數組中檢測到有一個元素不滿足,則整個表達式返回 false,且剩余的元素不會再進行檢測。
- 如果所有元素都滿足條件,則返回 true。
array.every(function(value,index,array), thisValue)
參數 | 描述 |
---|---|
value | 必須。當前元素的值 |
index | 可選。當前元素的索引值 |
array | 可選。當前元素屬于的數組對象 |
thisValue | 可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined" |
var arr=[1,2,3,4,5,6,7,8,9];
var result=arr.every(function (value, index, array) {
return value>2;
})
alert(result);
// result:false
-
filter:創建一個新的數組,新數組中的元素是通過檢查指定數組中符合條件的所有元素
注意: filter() 不會對空數組進行檢測。
array.filter(function(value, index, array), thisValue)
參數 | 描述 |
---|---|
value | 必須。當前元素的值 |
index | 可選。當前元素的索引值 |
array | 可選。當前元素屬于的數組對象 |
thisValue | 可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined" |
返回數組,包含了符合條件的所有元素。如果沒有符合條件的元素則返回空數組。
var arr=[1,2,3,4,5,6,7,8,9];
var result=arr.filter(function (value, index, array) {
return value<2;
})
alert(result);
// result:1
-
some:用于檢測數組中的元素是否滿足指定條件(函數提供)
some() 方法會依次執行數組的每個元素:
- 如果有一個元素滿足條件,則表達式返回true , 剩余的元素不會執行檢測。
- 如果沒有滿足條件的元素,則返回false。
array.some(function(value, index, array), thisValue)
參數 | 描述 |
---|---|
value | 必須。當前元素的值 |
index | 可選。當前元素的索引值 |
array | 可選。當前元素屬于的數組對象 |
thisValue | 可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined" |
var arr=[1,2,3,4];
var result=arr.some(function (value, index, array) {
return value<2;
})
alert(result);
// result:true,false,false,false
-
forEach:方法用于調用數組的每個元素,并將元素傳遞給回調函數
注意: forEach() 對于空數組是不會執行回調函數的。
array.forEach(function(value,index,array), thisValue)
參數 | 描述 |
---|---|
value | 必須。當前元素的值 |
index | 可選。當前元素的索引值 |
array | 可選。當前元素屬于的數組對象 |
thisValue | 可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined" |
var arr=[1,2,3,4,5,6,7,8,9];
arr.forEach(function (value, index, array) {
alert(value);
})
返回值:undefined
-
map:按照原始數組元素順序依次處理元素
array.map(function(value, index, array), thisValue)
參數 | 描述 |
---|---|
value | 必須。當前元素的值 |
index | 可選。當前元素的索引值 |
array | 可選。當前元素屬于的數組對象 |
thisValue | 可選。對象作為該執行回調時使用,傳遞給函數,用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined" |
var arr=[1,2,3,4];
var result=arr.map(function (value, index, array) {
return value+1;
})
alert(result);
// resultl:2,3,4,5
返回一個新數組,數組中的元素為原始數組元素調用函數處理后的值。
-
reduce:接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值
reduceRight()則是從右往左
array.reduce(function(total, value, index, array), initialValue)
參數 | 描述 |
---|---|
total | 必需。初始值, 或者計算結束后的返回值 |
value | 必須。當前元素的值 |
index | 可選。當前元素的索引值 |
array | 可選。當前元素屬于的數組對象 |
initialValue | 可選。傳遞給函數的初始值 |
var arr=[1,2,3,4];
var result=arr.reduce(function (total, value, index, array) {
return total+value;
})
alert(result);
// result:10