在前後端數據交互的過程中,為了能夠減少ajax請求次數,減輕帶寬壓力,後端往往會將當前介面所需的參數以對象的形式集體返回。這樣就導致一個問題:對象內欄位屬性過多,而有些小組件功能又壓根不需要這麼一個大對象參數(主要是對象屬性過多,難得理,也懶得找),這時就需要對這個大對象做再加工處理。 比如:將小組 ...
在前後端數據交互的過程中,為了能夠減少ajax請求次數,減輕帶寬壓力,後端往往會將當前介面所需的參數以對象的形式集體返回。這樣就導致一個問題:對象內欄位屬性過多,而有些小組件功能又壓根不需要這麼一個大對象參數(主要是對象屬性過多,難得理,也懶得找),這時就需要對這個大對象做再加工處理。
比如:將小組件所需的欄位屬性拎出來單獨再封裝成一個小對象。一般情況下我的寫法是:
let retData = {a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, j: 9, k: 10, m: 11, n: 12}; let tempData = { a: retData.a, c: retData.c, d: retData.d, g: retData.g, };
但是這種寫法卻很麻煩,要一個屬性一個屬性的添加,於是就突發奇想地想優化一下這種寫法。苦思冥想該怎麼玩,即要寫起來簡單,又要顯得 big 高,所以就用到了reduce()方法。
reduce方法的定義和用法
reduce() 方法接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值。reduce() 可以作為一個高階函數,用於函數的 compose。
語法:
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
參數: