這篇文章為大家帶來了關於JS的相關知識,其中主要給大家介紹了JS的一些優雅寫法,感興趣的朋友下面一起來看一下吧,希望對大家有幫助。
JS的一些優雅寫法
reduce
##1、可以使用reduce 方法來實現物件數組中根據某一key值求和例如,假設有以下物件數組:const arr = [ { name: 'apple', price: 2 }, { name: 'banana', price: 3 }, { name: 'orange', price: 4 }, ];如果要根據price屬性求和,可以使用下列程式碼:
const sum = arr.reduce((acc, cur) => acc + cur.price, 0); console.log(sum); // 9其中,reduce方法的第一個參數是一個回呼函數,它接收兩個參數:累加器(acc)和目前元素(cur)。回調函數的傳回值會作為下一次呼叫回呼函數時的累加器的值。 reduce方法的第二個參數是累加器的初始值,這裡設定為0。 在回呼函數中,我們將累加器和目前元素的price屬性相加,最終得到了所有元素的price屬性的總和。
map
1、可以使用map方法來實作物件陣列中根據某一key值,取得另外一個key的值。 例如,假設有以下物件陣列:const arr = [ { name: 'apple', price: 2 }, { name: 'banana', price: 3 }, { name: 'orange', price: 4 }, ];如果要根據name屬性取得price屬性,可以使用下列程式碼:
const prices = arr.map(item => item.name === 'banana' ? item.price : null); console.log(prices); // [null, 3, null]其中,map方法的參數是一個回呼函數,它接收一個參數:目前元素(item)。回調函數的傳回值會作為新數組的元素。在回呼函數中,我們判斷目前元素的name屬性是否等於'banana',如果是,則傳回目前元素的price屬性,否則傳回null。最後得到了一個新數組,其中只有name屬性為'banana'的元素的price屬性有值,其他元素的price屬性為null。 2、可以使用map方法來取得物件陣列中根據某一key值得到的元素的price屬性,可以使用find方法來實作。 例如,假設有以下物件陣列:
const arr = [ { name: 'apple', price: 2 }, { name: 'banana', price: 3 }, { name: 'orange', price: 4 }, ];如果要根據name屬性取得price屬性,可以使用下列程式碼:
const banana = arr.find(item => item.name === 'banana');if (banana) { console.log(banana.price); // 3}复制代码其中,find方法的參數是一個回呼函數,它接收一個參數:目前元素(item)。回調函數需要傳回布林值,表示目前元素是否符合條件。 find方法會傳回符合條件的第一個元素,如果沒有符合條件的元素,則傳回undefined。 在回呼函數中,我們判斷當前元素是否banana,如果是,則傳回目前元素。最後得到了一個對象,其中只有name屬性為'banana'的元素的price屬性有值,其他元素price屬性為undefined。我們可以使用if語句來判斷是否找到了符合條件的元素,如果找到了,則輸出它的price屬性。 推薦學習:《
JavaScript影片教學》
以上是分享JS的一些優雅寫法(reduce/map)的詳細內容。更多資訊請關注PHP中文網其他相關文章!