JavaScript - Array

不推薦使用
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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。