利用初中生的數學知識,初探計算機編程中數組的奧秘,你覺得編程真的難嗎?
今日目標:
通過簡單的數學運算,深入了解計算機編程中javascript數組的歸併應用。
今日討論:
計算機編程真的難嗎?是英語基礎不好,編程語法難?還是自覺智商不高,邏輯思維欠缺,沒有自信?抑或是自制力差,無法持續的自我學習?
數組歸併,通過某種函數的執行,對數組的所有元素進行特定的操作處理,並返回符合條件的單個值過程。本例中,主要了解程式設計師常用的兩個方法:reduce()方法和reduceRight()方法。這兩種方法功能基本相同,只是執行順序相反,最終結果返回值是一致的。
一、數組求和 通過reduce()方法對數組進行求和操作。如圖A,定義一個含有四個數據項的數組,然後,利用reduce()方法對數組的所有數據項進行求和,求和結果賦值給變量reduce_array1。需要注意的是,此時求和的結果並不是單純的四個數據項的值相加,所以結果並不是92!本例中,reduce()方法除了接收函數參數外,還接收了一個歸併基數8。所以,變量reduce_array1的初始值並不是0,而是8,因此,最終返回結果為100。在整個操作過程中,原始數組一直保持不變。
二、數組求積 通過reduce()方法對數組進行求積操作。如圖B,利用已定義的數組,對數組內的所有數據項進行求積。本例中,數組求積也不是單純的求積過程,而是以2為基數的歸併過程。因為歸併基數為2,所以,當函數對數據項求積時還要乘以基數2,返回結果為306342。具體的執行過程:函數參數第一次執行,操作項為18,前項為8,求和操作,返回結果144;函數參數第二次執行,操作項28,前項144,求和操作,返回結果4032;以此類推,直到末尾項,然後返回最終計算結果。執行順序是從首項依次執行到末尾項的。
三、數組求最大值 通過reduce()方法對數組進行求最大值操作。利用reduce()方法的函數參數,對數組內的所有數據項逐個比較,最終返回最大值。此時,若傳入歸併基數,對最終的返回結果並沒有影響。所以,變量reduce_array1值為38,這種操作,對於熟練的程式設計師來說都是非常簡單的。
顯而易見,初中的數學中,代數求和、求積,求最大值都是很簡單的。而計算機編程中,優秀程式設計師就是通過這種簡單的例子操作中慢慢成長的。編程難,絕大部分還是因為自制力差,無法自我管理學習。