摘要:返回值方法創(chuàng)建一個新數(shù)組其包含通過所提供函數(shù)實(shí)現(xiàn)的測試的所有元素。如果數(shù)組中的每個元素都滿足測試函數(shù),則返回,否則返回。
循環(huán)遍歷數(shù)組的時候,你還在用for語句走天下嗎?
我曾經(jīng)就是for走天下,最后發(fā)現(xiàn)自己給自己挖了一個巨大的坑,層層嵌套的循環(huán),總要花大量的時間去捋清各種邏輯關(guān)系,很容易邏輯混亂。終于你經(jīng)過千辛萬苦把邏輯捋清了,實(shí)現(xiàn)了功能需求。可是這時候接踵而來的問題來了?性能,擴(kuò)展性,重用性....等等,合著我費(fèi)了九牛二虎之力白費(fèi)了。這時候一把鼻涕一把淚,滿是辛酸;
這時候某人說,有很多好用的API,你為什么不去用呢?此刻恍然大悟。
數(shù)組(Array)Array.prototype.forEach() : 方法對數(shù)組的每個元素執(zhí)行一次提供的函數(shù)。
array.forEach(callback(currentValue, index, array){ //do something }, this)
參數(shù)
callback:為數(shù)組中每個元素執(zhí)行的函數(shù),該函數(shù)接收三個參數(shù):
currentValue(當(dāng)前值):數(shù)組中正在處理的當(dāng)前元素。
index(索引): 數(shù)組中正在處理的當(dāng)前元素的索引。
array: forEach()方法正在操作的數(shù)組。
thisArg可選:可選參數(shù)。當(dāng)執(zhí)行回調(diào) 函數(shù)時用作this的值(參考對象)。
返回值:undefined.
Array.prototype.filter(): 方法創(chuàng)建一個新數(shù)組, 其包含通過所提供函數(shù)實(shí)現(xiàn)的測試的所有元素。
const new_array = arr.filter(callback[, thisArg])
callback :用來測試數(shù)組的每個元素的函數(shù)。調(diào)用時使用參數(shù) (element, index, array)。返回true表示保留該元素(通過測試),false則不保留。
thisArg : 可選。執(zhí)行 callback 時的用于 this 的值。
返回值: 一個新的通過測試的元素的集合的數(shù)組
Array.prototype.map(): 創(chuàng)建一個新數(shù)組,其結(jié)果是該數(shù)組中的每個元素都調(diào)用一個提供的函數(shù)后返回的結(jié)果。
let new_array = arr.map(function callback(currentValue, index, array) { // Return element for new_array }[, thisArg])
callback : 生成新數(shù)組元素的函數(shù),使用三個參數(shù):
currentValue : callback 的第一個參數(shù),數(shù)組中正在處理的當(dāng)前元素。
index : callback 的第二個參數(shù),數(shù)組中正在處理的當(dāng)前元素的索引。
array: callback 的第三個參數(shù),map 方法被調(diào)用的數(shù)組。
thisArg:可選的。執(zhí)行 callback 函數(shù)時 使用的this 值。
Array.prototype.every(): 如果數(shù)組中的每個元素都滿足測試函數(shù),則返回 true,否則返回 false。
Array.prototype.some(): 如果數(shù)組中至少有一個元素滿足測試函數(shù),則返回 true,否則返回 false。
也許明天我們不在用for走天下,取而替代的是 for of
for...of 語句在可迭代對象(包括 Array,Map,Set,String,TypedArray,arguments 對象等等)上創(chuàng)建一個迭代循環(huán),調(diào)用自定義迭代鉤子,并為每個不同屬性的值執(zhí)行語句。
for ( variable of iterable) 迭代Array: let iterable = [10, 20, 30]; for (let value of iterable) { console.log(value+1); }// 11,21,31 迭代String: let iterable = "boo"; for (let value of iterable) { console.log(value); }// a,b,c
variable: 在每次迭代中,將不同屬性的值分配給變量。
iterable:可枚舉其枚舉屬性的對象。
for...of與for...in的區(qū)別:
for...in 語句以原始插入順序迭代對象的可枚舉屬性。針對object
for...of 語句遍歷可迭代對象定義要迭代的數(shù)據(jù)。對于Array,Map,Set,String,TypedArray,arguments 對象等等
在瀏覽器中調(diào)試一遍效果更佳
對象(Object)對象循環(huán)的話目前我知道 for in 是最好的選擇啦!用法和 for of 一樣
對象是類數(shù)組對象,當(dāng)然我們也可以把對象轉(zhuǎn)化為數(shù)組:
1.Object.keys():返回一個數(shù)組,包含指定對象的所有自有可遍歷屬性的名稱
2.類數(shù)組轉(zhuǎn)化為數(shù)組:Array.prototype.slice.call(arguments)
3.Array.from() :對偽數(shù)組或可迭代對象(包括arguments Array,Map,Set,String...)轉(zhuǎn)換成數(shù)組對象。
...未完待續(xù)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/89401.html
摘要:返回值方法創(chuàng)建一個新數(shù)組其包含通過所提供函數(shù)實(shí)現(xiàn)的測試的所有元素。如果數(shù)組中的每個元素都滿足測試函數(shù),則返回,否則返回。 showImg(https://segmentfault.com/img/bVXxkh?w=700&h=700);循環(huán)遍歷數(shù)組的時候,你還在用for語句走天下嗎? 我曾經(jīng)就是for走天下,最后發(fā)現(xiàn)自己給自己挖了一個巨大的坑,層層嵌套的循環(huán),總要花大量的時間去捋清各種...
摘要:返回值方法創(chuàng)建一個新數(shù)組其包含通過所提供函數(shù)實(shí)現(xiàn)的測試的所有元素。如果數(shù)組中的每個元素都滿足測試函數(shù),則返回,否則返回。 showImg(https://segmentfault.com/img/bVXxkh?w=700&h=700);循環(huán)遍歷數(shù)組的時候,你還在用for語句走天下嗎? 我曾經(jīng)就是for走天下,最后發(fā)現(xiàn)自己給自己挖了一個巨大的坑,層層嵌套的循環(huán),總要花大量的時間去捋清各種...
摘要:接觸這么多年,第一次總結(jié)一下它的遍歷語法。而且你必須借助特定的結(jié)構(gòu)才能遍歷數(shù)據(jù)結(jié)構(gòu)。它的作用是遍歷對象的鍵名。建議僅在遍歷數(shù)組的時候使用。另一個優(yōu)點(diǎn)是,它可以遍歷任何部署了接口的數(shù)據(jù)結(jié)構(gòu),甚至是非的數(shù)據(jù)類型,即自己定義的數(shù)據(jù)結(jié)構(gòu)。 接觸JavaScript這么多年,第一次總結(jié)一下它的遍歷語法。以前我大部分時間都在老版本的JavaScript下寫代碼,所以大部分時間都是用for...in...
閱讀 2830·2021-11-24 09:39
閱讀 4082·2021-10-27 14:19
閱讀 2043·2021-08-12 13:25
閱讀 2334·2019-08-29 17:07
閱讀 1112·2019-08-29 13:44
閱讀 1066·2019-08-26 12:17
閱讀 462·2019-08-23 17:16
閱讀 2048·2019-08-23 16:46