摘要:數組原型提供的方法非常之多,主要分為三種直接修改原數組原數組不變,返回新數組數組遍歷方法直接修改原數組的刪除一個數組中的最后的一個元素,并且返回這個元素添加一個或者多個元素到數組末尾,并且返回數組新的長度刪除數組的第一個元素,并返回這個元素
Javascript數組原型提供的方法非常之多,主要分為三種:
直接修改原數組
原數組不變,返回新數組
數組遍歷方法
直接修改原數組的APIpop()
刪除一個數組中的最后的一個元素,并且返回這個元素
push()
添加一個或者多個元素到數組末尾,并且返回數組新的長度
shift()
刪除數組的第一個元素,并返回這個元素
unshift()
在數組開始處插入一些元素,并返回數組新的長度
splice()
從數組中添加/刪除一些元素,然后返回被刪除的元素
reverse()
顛倒數組中元素的順序
sort()
用于對數組的元素進行排序
fill() -- ES6新增
將數組指定區間內的元素替換為某個值
copyWithin() -- ES6新增
數組內元素之間的替換
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;
總結:
不會影響原數組
不會被中斷
僅返回undefined
map()
遍歷數組,使用傳入函數處理每個元素,并返回函數的返回值組成的新數組
無return 返回由 undefined組成的數組,數組個數與原數組個數相同;
有return
return 表達式,返回有響應表達式 組成的數組
簡言之,返回值,必定是一個與原數組個數相等的數組;但是數組中的值,根據所做的處理有所不同;
總結:
不會影響原數組
不能被中斷
返回值,必定是一個與原數組個數相等的數組;但是數組中的值,根據所做的處理有所不同
filter()
使用傳入的函數測試所有元素,并返回所有通過測試的元素組成的新數組
沒有return,返回值為空數組;
有return:
僅有return,返回空數組;
return false,返回空數組;
return true,返回原數組;(是深拷貝還是淺拷貝)
return 其余表達式,如果有判斷條件,返回相應判斷條件構成的數組;沒有判斷條件,返回原數組;
簡言之,返回值,要么為空數組,要么為原數組,要么為原數組部分元素組成的數組;
總結:
不會影響原數組
不能被中斷
返回值,要么為空數組,要么為原數組,要么為原數組部分元素組成的數組
every()
使用傳入的函數測試所有元素,每一個元素經傳入的函數處理都返回true該方法才返回true,否則返回false(驗證是否每一個元素都滿足測試函數)
驗證是否有元素都滿足測試函數,eg: return (element >= 10)
無return:返回false;
有return:
僅有return :返回false;
return false:返回false;
return true:返回true;
簡言之,只返回 true 或者 false
總結:
不會影響原數組
不能被中斷
只返回true 或者 false
some()
使用傳入的函數測試所有元素,只要有一個元素經傳入的函數處理返回true該方法就返回true,否則返回false(驗證是否有元素都滿足測試函數)
無return,返回 false
有return:
僅有return,返回false;
return false,返回false;
return true,返回 true;并且后續被中斷
簡言之,僅返回true、或者false
總結:
不會影響原數組
return true,可以被中斷
僅返回true、或者false
find() -- ES6新增
返回數組中第一個滿足條件的元素(如果有的話), 如果沒有,則返回 undefined
無return:返回undefined
有return:
僅有return:返回undefined;
return false:返回undefined;
return true:返回相應的索引值,并且中斷
總結:
不會影響原數組
return true 中斷循環
返回 undefined 或者 相應索引值
findIndex() -- ES6新增
返回數組中第一個滿足條件的元素的索引(如果有的話), 如果沒有,則返回 -1
keys() -- ES6新增
返回一個數組索引的迭代器
values() -- ES6新增
返回一個數組迭代器對象,該對象包含數組中每個索引的值
entries() -- ES6新增
返回一個數組迭代器對象,該對象包含數組中每個索引的鍵值對
reduce()
接收一個方法作為累加器,數組中的每個值(從左至右) 開始合并,最終為一個值
reduceRight()
接收一個方法作為累加器,數組中的每個值(從右至左) 開始合并,最終為一個值
最終總結下,對于數組遍歷方法,forEach map filter every some find,六個方法,都不會改變原數組,只有some find 可中途跳出循環,返回結果看上述分析;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102110.html
摘要:系統,扎實的語言基礎是一個優秀的前端工程師必須具備的。第一個參數為調用函數時的指向,隨后的參數則作為函數的參數并調用,也就是。和的區別只有一個,就是它只有兩個參數,而且第二個參數為調用函數時的參數構成的數組。 系統,扎實的 javascript 語言基礎是一個優秀的前端工程師必須具備的。在看了一些關于 call,apply,bind 的文章后,我還是打算寫下這篇總結,原因其實有好幾個。...
摘要:原文發布在數組應該是日常開發中最常見的數據結構了,雖然常見,但是卻不一定能優雅地處理好,中數組的處理方法很多,各個方法的參數返回值是否修改原數組等也容易記混。 原文發布在:http://blog.xiaofeixu.cn/2017... 數組應該是日常開發中最常見的數據結構了,雖然常見,但是卻不一定能優雅地處理好,JavaScript中數組的處理方法很多,各個方法的參數、返回值、是否修...
摘要:專題系列第三篇,講解各種數組去重方法,并且跟著寫一個前言數組去重方法老生常談,既然是常談,我也來談談。它類似于數組,但是成員的值都是唯一的,沒有重復的值。 JavaScript 專題系列第三篇,講解各種數組去重方法,并且跟著 underscore 寫一個 unique API 前言 數組去重方法老生常談,既然是常談,我也來談談。 雙層循環 也許我們首先想到的是使用 indexOf 來循...
摘要:而數組元素去重是基于運算符的。而如果有迭代函數,則計算傳入迭代函數后的值,對值去重,調用方法,而該方法的核心就是調用方法,和我們上面說的方法一異曲同工。 Why underscore (覺得這部分眼熟的可以直接跳到下一段了...) 最近開始看 underscore.js 源碼,并將 underscore.js 源碼解讀 放在了我的 2016 計劃中。 閱讀一些著名框架類庫的源碼,就好像...
摘要:等內置的方法和屬性都是不可枚舉的北京北京可以遍歷可枚舉但對象,包括不是它本身但存在于原型鏈上的屬性。北京循環可迭代對象循環可迭代對象包括,,,,,類數組的對象比如對象對象以及生成器對象等。 在JavaScript中,我們經常需要去循環迭代方法操作數組對象等,常見等循環方法有 for、for in、for of、forEach等。 1.for循環 for循環是最基礎常見的一種循環,圓括號...
閱讀 3868·2021-07-28 18:10
閱讀 2577·2019-08-30 15:44
閱讀 1082·2019-08-30 14:07
閱讀 3454·2019-08-29 17:20
閱讀 1577·2019-08-26 18:35
閱讀 3533·2019-08-26 13:42
閱讀 1816·2019-08-26 11:58
閱讀 1585·2019-08-23 18:33