Javascript基礎之Array數組API

Javascript數組原型提供的方法很是之多,主要分爲三種:數組

  • 直接修改原數組
  • 原數組不變,返回新數組
  • 數組遍歷方法

直接修改原數組的API

pop()
刪除一個數組中的最後的一個元素,而且返回這個元素函數

push()
添加一個或者多個元素到數組末尾,而且返回數組新的長度測試

shift()
刪除數組的第一個元素,並返回這個元素code

unshift()
在數組開始處插入一些元素,並返回數組新的長度對象

splice()
從數組中添加/刪除一些元素,而後返回被刪除的元素排序

reverse()
顛倒數組中元素的順序索引

sort()
用於對數組的元素進行排序ip

fill() -- ES6新增
將數組指定區間內的元素替換爲某個值element

copyWithin() -- ES6新增
數組內元素之間的替換字符串

返回新數組的API

contact()
將傳入的數組或者元素與原數組合並,組成一個新的數組並返回

slice()
鏈接兩個或多個數組

join()
將數組中的全部元素鏈接成一個字符串

indexOf()
用於查找元素在數組中第一次出現時的索引,若是沒有,則返回-1

lastIndexOf()
用於查找元素在數組中最後一次出現時的索引,若是沒有,則返回-1

includes() -- ES7新增
用來判斷當前數組是否包含某個指定的值,若是是,則返回 true,不然返回false

數組遍歷方法

針對數組遍歷方法,從

  • 是否影響原數組
  • 是否可中途跳出
  • 有無返回值

三個方面來討論

forEach()

指定數組的每項元素都執行一次傳入的函數,返回值爲undefined

let arr=[1,2,3,4];
arr.forEach(function(value,key,arr){  //值,索引,數組(默認爲選定數組)
    return item;  //進行任何操做
})  //只返回undefined

return 返回 undefined

return

  • 僅有return:返回undefined
  • return false:返回undefined
  • return true:返回undefined

簡言之,僅返回undefined;

總結:

  1. 不會影響原數組
  2. 不會被中斷
  3. 僅返回undefined

map()

遍歷數組,使用傳入函數處理每一個元素,並返回函數的返回值組成的新數組

return 返回由 undefined組成的數組,數組個數與原數組個數相同

return

  • return 表達式,返回有響應表達式 組成的數組

簡言之,返回值,一定是一個與原數組個數相等的數組;可是數組中的值,根據所作的處理有所不一樣;

總結:

  1. 不會影響原數組
  2. 不能被中斷
  3. 返回值,一定是一個與原數組個數相等的數組;可是數組中的值,根據所作的處理有所不一樣

filter()

使用傳入的函數測試全部元素,並返回全部經過測試的元素組成的新數組

沒有return,返回值爲空數組;

return

  • 僅有return,返回空數組;
  • return false,返回空數組;
  • return true,返回原數組;(是深拷貝仍是淺拷貝)
  • return 其他表達式,若是有判斷條件,返回相應判斷條件構成的數組;沒有判斷條件,返回原數組;

簡言之,返回值,要麼爲空數組,要麼爲原數組,要麼爲原數組部分元素組成的數組;

總結:

  1. 不會影響原數組
  2. 不能被中斷
  3. 返回值,要麼爲空數組,要麼爲原數組,要麼爲原數組部分元素組成的數組

every()

使用傳入的函數測試全部元素,每個元素經傳入的函數處理都返回true該方法才返回true,不然返回false(驗證是否每個元素都知足測試函數)

驗證是否有元素都知足測試函數,eg: return (element >= 10)

無return:返回false;

return

  • 僅有return :返回false
  • return false:返回false
  • return true:返回true

簡言之,只返回 true 或者 false

總結:

  1. 不會影響原數組
  2. 不能被中斷
  3. 只返回true 或者 false

some()

使用傳入的函數測試全部元素,只要有一個元素經傳入的函數處理返回true該方法就返回true,不然返回false(驗證是否有元素都知足測試函數)

return,返回 false

return:

  • 僅有return,返回false
  • return false,返回false
  • return true,返回 true;而且後續被中斷

簡言之,僅返回true、或者false

總結:

  1. 不會影響原數組
  2. return true,能夠被中斷
  3. 僅返回true、或者false

find() -- ES6新增

返回數組中第一個知足條件的元素(若是有的話), 若是沒有,則返回 undefined

return:返回undefined

return

  • 僅有return:返回undefined
  • return false:返回undefined;
  • return true:返回相應的索引值,而且中斷

總結:

  1. 不會影響原數組
  2. return true 中斷循環
  3. 返回 undefined 或者 相應索引值

findIndex() -- ES6新增
返回數組中第一個知足條件的元素的索引(若是有的話), 若是沒有,則返回 -1


keys() -- ES6新增
返回一個數組索引的迭代器


values() -- ES6新增
返回一個數組迭代器對象,該對象包含數組中每一個索引的值


entries() -- ES6新增
返回一個數組迭代器對象,該對象包含數組中每一個索引的鍵值對


reduce()
接收一個方法做爲累加器,數組中的每一個值(從左至右) 開始合併,最終爲一個值


reduceRight()
接收一個方法做爲累加器,數組中的每一個值(從右至左) 開始合併,最終爲一個值


最終總結下,對於數組遍歷方法,forEach map filter every some find,六個方法,都不會改變原數組,只有some find 可中途跳出循環,返回結果看上述分析;

相關文章
相關標籤/搜索