ES6小技巧之代替lodash
Javascript ES6標(biāo)準(zhǔn)實行后,Lodash或者Ramada中的一些功能我們就不需要了,可以使用ES6的語法來實現(xiàn)
獲取Object中指定鍵值
我們現(xiàn)在可以使用解包的方法快速獲取對象中指定鍵值的值
const obj = { a:1, b:2, c:3, d:4 }; // 獲取obj中a與b的值 const {a,b} = obj; // 也可以給他們?nèi)e名 const {a:A, b:B} = obj;
這個小技巧非常的方便,也是最基礎(chǔ)的使用方法
排除Object中不需要的鍵值
既然我們可以獲取到想要的對象鍵值,那么也可以排除掉不想要的鍵值,使用方法就要用到ES6的rest新特性
const obj = { a:1, b:2, c:3, d:4 } // 我們想要獲取除了a之外的所有屬性 const {a, ...other} = obj
我們只要指定那些排除掉的屬性,剩下的就是需要的屬性,這樣可以非??焖俚呐懦恍枰膶傩?br />
對象快速求和
有時候我們需要對一組對象數(shù)組中的某一個屬性求總和,以前我們可以使用forEach或者for這樣的循環(huán)遍歷的方法來計算,現(xiàn)在我們可以使用reduce方法來快速實現(xiàn)
const objs = [ {name:'lilei', score: 98}, {name:'hanmeimei', score: 95}, {name:'polo', score: 85}, ... ] const scoreTotal = objs.reduce( (total, obj) => { return obj.score + total; }, 0 /*第二個參數(shù)是total的初始值*/)
使用reduce就能快速的實現(xiàn)對某一個屬性的總和計算
map也能異步遍歷
是不是覺得只有for能夠進行異步操作不方便,其實map也能進行異步操作,不過需要結(jié)合Promise的新方法一起使用
const arr = [1,2,3,4,...] const queue = arr.map(async item => { return item + 1; }) Promise.all(queue).then(newArr => console.log(newArr))
這樣一來我們在map中也能使用異步操作了
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。
相關(guān)文章
使用clipboard.js庫實現(xiàn)復(fù)制剪切功能
這篇文章介紹了clipboard.js實現(xiàn)復(fù)制功能的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06淺談javascript函數(shù)劫持[轉(zhuǎn)自xfocus]
javascript函數(shù)劫持,也就是老外提到的javascript hijacking技術(shù)。最早還是和劍心同學(xué)討論問題時偶然看到的一段代碼2008-02-02Javascript本地存儲localStorage看這一篇就夠了
這篇文章主要給大家介紹了關(guān)于Javascript本地存儲localStorage的相關(guān)資料,localStorage會可以將第一次請求的數(shù)據(jù)直接存儲到本地,這個相當(dāng)于一個5M大小的針對于前端頁面的數(shù)據(jù)庫,需要的朋友可以參考下2024-07-07HTML5之WebSocket入門3 -通信模型socket.io
socket.io能為程序員提供客戶端和服務(wù)端一致的編程體驗,socket.io支持任何的瀏覽器,任何的Mobile設(shè)備。下面通過本篇文章給大家講解HTML5之WebSocket入門3 -通信模型socket.io,需要的朋友可以參考下2015-08-08