跳過到頁腳內容
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

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

Lodash 是一個多元的 JavaScript 工具程式庫,可以簡化許多資料操作任務,而 IronPDF for Node.js 是一個強大的工具,可以創建和操作 PDF 文件。 通過結合這兩種工具,開發者可以有效地從不同的資料來源生成 PDF,輕鬆創建動態報告、發票和其他文件。

IronPDF for Node.js

IronPDF 概覽讓開發者可以創建、編輯和從 PDFs 中提取內容。 它支援從 URLs、HTML 文件和 HTML 字串中生成 PDFs,提供靈活的 PDF 創建方法。

Lodash NPM(對開發者的運作原理):圖 2 - IronPDF

欲了解更詳細的信息,請訪問 IronPDF 文件以獲取 IronPDF 功能的深入指南。

從資料生成 PDF 報告

假設您有一個用戶數據清單,您需要生成一個包含每個用戶信息的 PDF 報告,格式化為 HTML。 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 的格式化 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 來說,工作令人滿意因為它被重視且有實際影響。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me