reduce()方法的學習和整理
今天看文章的時候看到reduce方法去做迴圈比較是較為優雅的寫法,遂學習了一波,現整理如下。
文章連結:https://www.jianshu.com/p/e375ba1cfc47
1. 語法
reduce() 方法接收一個函式作為累加器,陣列中的每個值(從左到右)開始縮減,最終計算為一個值。
reduce() 可以作為一個高階函式,用於函式的 compose。
注意: reduce() 對於空陣列是不會執行回撥函式的。
arr.reduce(callback,[initialValue])
callback詳解:
- previousValues: 上一次呼叫回撥函式返回的值,第一次是
initialValue
的值,如何未設定initialValue
值,是陣列的第一個元素的值 - currentValue: 陣列當前被處理的值,未設定
initialValue
,為陣列的第二個元素的值。 - index:當前元素在陣列中的索引。預設值為1,設定
initialValue
則為initialValue
的值 - array:呼叫reduce方法的陣列
- initialValue: 第一次呼叫callback的第一個引數
2. 例項
var arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
})
console.log(arr, sum);
列印結果:
1 2 1
3 3 2
6 4 3
[1, 2, 3, 4] 10
3. 其他語法
if in
if ( cur in pre ) {
pre[cur]++
}
if in 用法是判斷屬性是否屬於物件
上述代表的是在 pre
中是否有 cur
屬性
注: in
我一般用於 for in
沒使用過 if in
,還是見識少,要多看書和文章。
includes
if ( !pre.includes(cur) ) {
return pre.concat(cur)
}
ncludes() 方法用於判斷字串是否包含指定的子字串。
如果找到匹配的字串則返回 true,否則返回 false。
includes() 方法區分大小寫。
故上述程式碼是用來判斷 cur
中是否包含字串 pre
4. 討論
和後臺男朋友說到元素匹配陣列,男朋友告訴我後臺有個 contains
方法,js裡面可能也有,搜尋了一下發現是jQuery 裡的 contains
,方法是用來判斷dom元素的包含關係的。
$.contains() 方法用於判斷指定元素內是否包含另一個元素。即判斷另一個DOM元素是否是指定DOM元素的後代。
例項:
$(function () {
function funcontain( html ){
document.body.innerHTML += "<br>" + html;
}
funcontain($.contains( document.documentElement, document.body )); // true
funcontain($.contains( document.body, document.documentElement )); // false
})
but 看文章的時候發現有個陣列有個 indexOf
判斷陣列內某個元素是否存在,只用字串的 indexOf
,一查文件,發現還真的有,又學到一個。寫法和字串的一致,返回元素所在的位置,沒有找到返回-1。
有個大佬的文章講這個的,分析的不錯。
相關文章
- 學習筆記——物件方法整理筆記物件
- Array的reduce方法
- 學習bootstrap的整理。boot
- Array.reduce()方法的使用
- 學習筆記——正則匹配方法整理筆記
- Python學習筆記 - filter,map,reduce,zipPython筆記Filter
- JS中reduce方法JS
- 陣列reduce()方法陣列
- JVM相關知識整理和學習JVM
- 零基礎快速學習Java技術的方法整理Java
- [譯] 圖解 Map、Reduce 和 Filter 陣列方法圖解Filter陣列
- 學習一下Array.reduce函式的使用函式
- Git學習整理Git
- 工作學習整理
- 分享一些自己的學習過程和學習方法
- JavaScript map和reduce的區別JavaScript
- js 部分學習整理JS
- 小程式學習整理
- 程式碼寫得好,Reduce 方法少不了,我用這10例子來加深學習!
- js陣列方法之ReduceJS陣列
- 學習 Go 的一些工具類和技術點整理Go
- nofile引數的學習與整理
- 學習的方法
- 人人都能學會的python程式設計教程16:map和reducePython程式設計
- java apache commons HttpClient傳送get和post請求的學習整理JavaApacheHTTPclient
- Go 學習資料整理Go
- Masonry 原始碼學習整理原始碼
- Python學習資源整理Python
- SSM框架學習之Spring的AOP學習以及資料整理SSM框架Spring
- Javascript中陣列方法reduce的妙用之處JavaScript陣列
- js--陣列的reduce()方法的使用介紹JS陣列
- 字串和陣列常用方法整理字串陣列
- Spark入門(五)--Spark的reduce和reduceByKeySpark
- 陣列的 map, filter ,sort和 reduce 用法陣列Filter
- 安卓學習資源整理安卓
- vue生命週期整理學習Vue
- 軟體測試整理學習
- mysql學習整理所有問題MySql