摘要:返回值方法創建一個新數組其包含通過所提供函數實現的測試的所有元素。如果數組中的每個元素都滿足測試函數,則返回,否則返回。
循環遍歷數組的時候,你還在用for語句走天下嗎?
我曾經就是for走天下,最后發現自己給自己挖了一個巨大的坑,層層嵌套的循環,總要花大量的時間去捋清各種邏輯關系,很容易邏輯混亂。終于你經過千辛萬苦把邏輯捋清了,實現了功能需求。可是這時候接踵而來的問題來了?性能,擴展性,重用性....等等,合著我費了九牛二虎之力白費了。這時候一把鼻涕一把淚,滿是辛酸;
這時候某人說,有很多好用的API,你為什么不去用呢?此刻恍然大悟。
數組(Array)Array.prototype.forEach() : 方法對數組的每個元素執行一次提供的函數。
array.forEach(callback(currentValue, index, array){ //do something }, this)
參數
callback:為數組中每個元素執行的函數,該函數接收三個參數:
currentValue(當前值):數組中正在處理的當前元素。
index(索引): 數組中正在處理的當前元素的索引。
array: forEach()方法正在操作的數組。
thisArg可選:可選參數。當執行回調 函數時用作this的值(參考對象)。
返回值:undefined.
Array.prototype.filter(): 方法創建一個新數組, 其包含通過所提供函數實現的測試的所有元素。
const new_array = arr.filter(callback[, thisArg])
callback :用來測試數組的每個元素的函數。調用時使用參數 (element, index, array)。返回true表示保留該元素(通過測試),false則不保留。
thisArg : 可選。執行 callback 時的用于 this 的值。
返回值: 一個新的通過測試的元素的集合的數組
Array.prototype.map(): 創建一個新數組,其結果是該數組中的每個元素都調用一個提供的函數后返回的結果。
let new_array = arr.map(function callback(currentValue, index, array) { // Return element for new_array }[, thisArg])
callback : 生成新數組元素的函數,使用三個參數:
currentValue : callback 的第一個參數,數組中正在處理的當前元素。
index : callback 的第二個參數,數組中正在處理的當前元素的索引。
array: callback 的第三個參數,map 方法被調用的數組。
thisArg:可選的。執行 callback 函數時 使用的this 值。
Array.prototype.every(): 如果數組中的每個元素都滿足測試函數,則返回 true,否則返回 false。
Array.prototype.some(): 如果數組中至少有一個元素滿足測試函數,則返回 true,否則返回 false。
也許明天我們不在用for走天下,取而替代的是 for of
for...of 語句在可迭代對象(包括 Array,Map,Set,String,TypedArray,arguments 對象等等)上創建一個迭代循環,調用自定義迭代鉤子,并為每個不同屬性的值執行語句。
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的區別:
for...in 語句以原始插入順序迭代對象的可枚舉屬性。針對object
for...of 語句遍歷可迭代對象定義要迭代的數據。對于Array,Map,Set,String,TypedArray,arguments 對象等等
在瀏覽器中調試一遍效果更佳
對象(Object)對象循環的話目前我知道 for in 是最好的選擇啦!用法和 for of 一樣
對象是類數組對象,當然我們也可以把對象轉化為數組:
1.Object.keys():返回一個數組,包含指定對象的所有自有可遍歷屬性的名稱
2.類數組轉化為數組:Array.prototype.slice.call(arguments)
3.Array.from() :對偽數組或可迭代對象(包括arguments Array,Map,Set,String...)轉換成數組對象。
...未完待續
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/51446.html
摘要:接觸這么多年,第一次總結一下它的遍歷語法。而且你必須借助特定的結構才能遍歷數據結構。它的作用是遍歷對象的鍵名。建議僅在遍歷數組的時候使用。另一個優點是,它可以遍歷任何部署了接口的數據結構,甚至是非的數據類型,即自己定義的數據結構。 接觸JavaScript這么多年,第一次總結一下它的遍歷語法。以前我大部分時間都在老版本的JavaScript下寫代碼,所以大部分時間都是用for...in...
閱讀 4001·2023-04-26 02:13
閱讀 2244·2021-11-08 13:13
閱讀 2729·2021-10-11 10:59
閱讀 1732·2021-09-03 00:23
閱讀 1301·2019-08-30 15:53
閱讀 2275·2019-08-28 18:22
閱讀 3050·2019-08-26 10:45
閱讀 727·2019-08-23 17:58