跳過到頁腳內容
NODE 說明

Lodash NPM(開發者的使用方法)

Lodash 是一個現代 JavaScript 工具庫,提供模組化、高性能及額外的功能。 它通過提供用於常見編程任務的多種工具函數,幫助開發者編寫更簡潔、易於維護的代碼。

在本文中,我們將深入探討 Lodash,探索其特性、優勢及如何在您的 JS 項目中有效使用。

Lodash 是什麼?

Lodash 是一個 JavaScript 庫,提供用於常見編程任務的工具方法,例如操作陣列、對象和字符串。 它由 John-David Dalton 於 2012 年創建,作為 Underscore.js 的一個分支,另一個工具庫,目的是提供更好的性能和額外功能。

Lodash NPM(開發者如何使用):圖 1 - Lodash 核心構建

Lodash 的模組化方法支持現代環境,以各種模組格式提供綜合功能。 其核心構建和 FP 構建提升了 JavaScript 的易用性,簡化了字符串操作和陣列迭代。 該庫以多種模組格式導出,滿足不同需求,有效處理 var 對象和 var 陣列。 這就是為什麼 Lodash 仍然是 JS 庫領域的首選。

Lodash 的主要特點

Lodash 支持現代環境,包含多種工具函數,可分類為幾個組別:

  1. 陣列操作:用於操作陣列的函數,例如 mapfilterreduceflattenuniq
  2. 對象操作:用於對象的函數,包括 assignkeysvaluesmergeomit
  3. 字符串操作:用於字符串操作的函數,如 camelCasecapitalizetrimescape
  4. 集合操作:用於處理集合(陣列或對象)的函數,如 eachgroupBysortByshuffle
  5. 函數工具:用於操作函數的函數,包括 debouncethrottlecurrybind
  6. 數學工具:數學相關函數,如 randomclampsum

使用 Lodash 的優勢

1. 簡化代碼

Lodash 通過提供簡潔且可讀的方法執行常見任務,使 JavaScript 更容易使用,減少您需要編寫和維護的代碼量。

2. 提高性能

Lodash 綜合函數模組格式經過性能優化,常常優於 JavaScript 原生實現。 這使它成為處理大型數據集或執行複雜操作的寶貴工具。

3. 跨瀏覽器的一致性

JavaScript 行為可能因不同瀏覽器和環境而異。 Lodash 提供一致的行為,幫助避免跨瀏覽器兼容性問題。

4. 模組化方法

Lodash 可以作為整體或較小的模組化部分導入。 這種靈活性使開發者只需使用所需的方法類別,從而減少應用程序的總捆綁大小。

如何使用 Lodash

安裝

Lodash 可以通過 npm(Node Package Manager)或 yarn 安裝:

npm install lodash
npm install lodash
SHELL

導入 Lodash

您可以使用 CommonJS 或 ES6 模組語法將 Lodash 導入項目中。 使用方法如下:

使用 CommonJS

const _ = require('lodash');
const _ = require('lodash');
JAVASCRIPT

使用 ES6 模組

import _ from 'lodash';
import _ from 'lodash';
JAVASCRIPT

基本用法

讓我們來探討一些常見用例以及 Lodash 如何簡化這些任務。

陣列操作

  1. 篩選陣列:

    使用 _.filter 創建一個新的陣列,該陣列包含通過提供的函數測試的元素。

const users = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Jim', age: 35 }
];
const youngUsers = _.filter(users, user => user.age < 30);
console.log(youngUsers); // [{ name: 'John', age: 25 }]
const users = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Jim', age: 35 }
];
const youngUsers = _.filter(users, user => user.age < 30);
console.log(youngUsers); // [{ name: 'John', age: 25 }]
JAVASCRIPT
  1. 查找唯一陣列:

    使用 _.uniq 創建一個無重複的陣列版本。

const numbers = [1, 2, 2, 3, 4, 4, 5];
const uniqueNumbers = _.uniq(numbers);
console.log(uniqueNumbers); // [1, 2, 3, 4, 5]
const numbers = [1, 2, 2, 3, 4, 4, 5];
const uniqueNumbers = _.uniq(numbers);
console.log(uniqueNumbers); // [1, 2, 3, 4, 5]
JAVASCRIPT

對象操作

  1. 合併對象:

    使用 _.merge 將源對象遞歸合併到目標對象中。

const object1 = { a: 1, b: 2 };
const object2 = { b: 3, c: 4 };
const mergedObject = _.merge(object1, object2);
console.log(mergedObject); // { a: 1, b: 3, c: 4 }
const object1 = { a: 1, b: 2 };
const object2 = { b: 3, c: 4 };
const mergedObject = _.merge(object1, object2);
console.log(mergedObject); // { a: 1, b: 3, c: 4 }
JAVASCRIPT
  1. 忽略屬性:

    使用 _.omit 創建由未被忽略的對象屬性組成的對象。

const object = { a: 1, b: 2, c: 3 };
const newObject = _.omit(object, ['b']);
console.log(newObject); // { a: 1, c: 3 }
const object = { a: 1, b: 2, c: 3 };
const newObject = _.omit(object, ['b']);
console.log(newObject); // { a: 1, c: 3 }
JAVASCRIPT

函數工具

  1. 防抖函數:

    使用 _.debounce 限制函數頻繁調用。 這確保了無論綁定事件被觸發多少次,函數都在給定的時間段內僅執行一次。

const saveInput = _.debounce(() => {
  console.log('Input saved');
}, 300);
// This will only be executed once every 300 milliseconds, regardless of how many times it's called.
const saveInput = _.debounce(() => {
  console.log('Input saved');
}, 300);
// This will only be executed once every 300 milliseconds, regardless of how many times it's called.
JAVASCRIPT
  1. 節流函數:

    使用 _.throttle 限制函數執行,在指定間隔內不超過一次。

const updatePosition = _.throttle(() => {
  console.log('Position updated');
}, 1000);
// This function will be executed at most once every second.
const updatePosition = _.throttle(() => {
  console.log('Position updated');
}, 1000);
// This function will be executed at most once every second.
JAVASCRIPT

使用 Lodash 和 IronPDF 從資料中生成 PDF 在 Node.js 中

Lodash 是一個多功能的 JavaScript 工具庫,可以簡化許多數據操作任務,而 IronPDF for Node.js 是一個用於創建和操作 PDF 文檔的強大工具。 通過結合這兩種工具,開發者可以有效地從各種數據來源生成 PDF,輕鬆創建動態報告、發票和其他文檔。

IronPDF for Node.js

IronPDF 概述 允許開發者創建、編輯和提取 PDF 的內容。 它支持從 URL、HTML 文件和 HTML 字符串生成 PDF,提供靈活的 PDF 創建方法。

Lodash NPM(開發者如何使用):圖 2 - IronPDF

有關更多詳細信息,請訪問 IronPDF 文檔 以獲取有關使用 IronPDF 功能的深入指南。

從資料生成 PDF 報告

假設您有一份用戶資料列表,並且需要生成一份包含格式化為 HTML 的每位用戶信息的 PDF 報告。 可以使用 Lodash 操作和格式化資料,而 IronPDF 負責 PDF 的創建。

逐步指南

  1. 安裝必要的包:首先,確保您的 Node.js 項目中安裝了 Lodash 和 IronPDF:
npm i @ironsoftware/ironpdf lodash
npm i @ironsoftware/ironpdf lodash
SHELL
  1. 準備您的資料:假設您有以下用戶資料:
const _ = require('lodash');
const users = [
    { name: 'John Doe', age: 28, email: 'john@example.com' },
    { name: 'Jane Smith', age: 34, email: 'jane@example.com' },
    { name: 'Jim Brown', age: 45, email: 'jim@example.com' }
];
const _ = require('lodash');
const users = [
    { name: 'John Doe', age: 28, email: 'john@example.com' },
    { name: 'Jane Smith', age: 34, email: 'jane@example.com' },
    { name: 'Jim Brown', age: 45, email: 'jim@example.com' }
];
JAVASCRIPT
  1. 用 Lodash 格式化資料:使用 Lodash 將用戶資料格式化為 HTML 字符串:
const formatUserData = (users) => {
    return _.map(users, user => {
        return `
            <div>
                <h2>${_.escape(user.name)}</h2>
                <p>Age: ${user.age}</p>
                <p>Email: ${_.escape(user.email)}</p>
            </div>
        `;
    }).join('');
};

const userHtml = `
    <html>
    <head><title>User Report</title></head>
    <body>
        ${formatUserData(users)}
    </body>
    </html>
`;
const formatUserData = (users) => {
    return _.map(users, user => {
        return `
            <div>
                <h2>${_.escape(user.name)}</h2>
                <p>Age: ${user.age}</p>
                <p>Email: ${_.escape(user.email)}</p>
            </div>
        `;
    }).join('');
};

const userHtml = `
    <html>
    <head><title>User Report</title></head>
    <body>
        ${formatUserData(users)}
    </body>
    </html>
`;
JAVASCRIPT
  1. 用 IronPDF 生成 PDF:使用 IronPDF 從格式化的 HTML 字符串生成 PDF
const { PdfDocument } = require('@ironsoftware/ironpdf');
(async () => {
    const pdfFromHtmlString = await PdfDocument.fromHtml(userHtml);
    await pdfFromHtmlString.saveAs("user_report.pdf");
})();
const { PdfDocument } = require('@ironsoftware/ironpdf');
(async () => {
    const pdfFromHtmlString = await PdfDocument.fromHtml(userHtml);
    await pdfFromHtmlString.saveAs("user_report.pdf");
})();
JAVASCRIPT

這是使用 Lodash 格式化資料生成的 PDF:

Lodash NPM(開發者如何使用):圖 3 - PDF 輸出

結論

在 Node.js 中結合使用 Lodash 和 IronPDF 可以在生成 PDF 文檔之前高效地預處理和轉換資料。 Lodash 簡化了資料操作,使代碼更具可讀性和可維護性,而 IronPDF 提供強大的 PDF 創建和操作功能。

IronPDF 許可證價格 起價僅為 $799。

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。