iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
0
自我挑戰組

後端工程師自我練習,使用Node.js來做後端server系列 第 13

[Day-13] Node.js [lodash套件,增加開發速度]

  • 分享至 

  • xImage
  •  

[ Day 13]

說明:
在javascript中有個好用的工具套件lodash,可以方便對陣列集合類型等操作,
另外以及有許多已經包裝好的函數可以使用,大幅減少專案中重複造輪子的時間。

一、安裝

npm i lodash --save

二、array操作

const _ = require('lodash')

var arrayA = [1,2,3,4,4,6,8,9,10,11,12,13,14,15,16,17,18]
var arrayB = [3,5,7,8,9,10,18]
var arrayC = _.union(arrayA, arrayB)

arrayC = _.sortBy(arrayC)

arrayC.forEach(i => {
  console.log(i)
})

這裡引入了整個lodash 套件,並且宣告了兩個數字有重複的陣列,
對兩個陣列取交集,並且排序。
https://ithelp.ithome.com.tw/upload/images/20200926/20110911F5SZpTC2n8.png

同時,lodash的陣列操作有連續性

arrayC = _.sortBy(arrayC)
          .reverse(arrayC)

https://ithelp.ithome.com.tw/upload/images/20200926/20110911lJOhXwMUHv.png

三、math操作

var arrayA = [1,2,3,4,4,6,8,92,10,11,12,13,14,15,16,17,18]
var arrayB = [3,5,7,8,9,10,43]

console.log(_.max(arrayA))
console.log(_.max(arrayB))
console.log(_.sum(arrayA))
console.log(_.sum(arrayB))

https://ithelp.ithome.com.tw/upload/images/20200926/20110911kBO4gsEreC.png
另一個好用的函數,針對數列做簡單的數學運算。

四、map複合操作

var arrayA = [1,2,3,4,4,6,8,92,10,11,12,13,14,15,16,17,18]

function square(n) {
  return n * n
}
 
function toNegative(n) {
  return -1 * n
}
console.log(_.map(arrayA, square))

console.log(_.map(arrayA, toNegative))

https://ithelp.ithome.com.tw/upload/images/20200926/201109116TTGtfFvk5.png

當想要進行的運算操作沒有提供相關的函數時,就可以用到map函數,
針對需要操作的陣列,進行第二個參數函數的運算。

參考來源:https://lodash.com/docs/4.17.15
[Day13結束]


上一篇
[Day-12] Node.js [定時排程任務套件node-schedule介紹]
下一篇
[Day-14] Node.js [用Chalk.js對console輸出上色]
系列文
後端工程師自我練習,使用Node.js來做後端server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
mis_liu
iT邦新手 5 級 ‧ 2020-10-05 12:20:14

有點好奇

const _ = require('lodash')

底線是? 引用套件嗎?

這樣用法有什麼特別的呢?

改成

const lodash = require('lodash')

辨識度不是比較高嗎?

使用底線_ 來代表lodash的方式,類似於$代表jquery吧。
算是種約定俗成,一眼可以看出這是在用哪個函式庫。
而且coding的速度會比較快吧/images/emoticon/emoticon39.gif

我要留言

立即登入留言