跳過到頁腳內容
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.物件操作:物件函數,包括賦值合併省略。 3.字串操作:用於字串操作的函數,如camelCasecapitalizetrimescape 。 4.集合運算:用於處理集合(陣列或物件)的函數,例如eachgroupBysortByshuffle 。 5.函數實用程式:用於操作函數的函數,包括防抖動節流柯里化綁定。 6.數學工具:與數學相關的函數,如randomclampsum

使用 Lodash 的好處

1. 簡化程式碼

Lodash 透過提供簡潔易讀的常用方法,簡化了 JavaScript 的使用,減少了需要編寫和維護的程式碼量。

2. 性能提升

Lodash複合函數模組格式針對效能進行了最佳化,通常比原生JavaScript實作效能更好。 這使其成為處理大型資料集或執行複雜操作的寶貴工具。

3. 跨瀏覽器的一致性

JavaScript 在不同的瀏覽器和環境下行為可能有所不同。 Lodash 提供一致的行為,有助於避免跨瀏覽器相容性問題。

4. 模組化方法

Lodash 可以整體導入,也可以分成更小的模組化部分導入。 這種靈活性允許開發人員僅使用他們需要的方法類別,從而減少應用程式的整體套件大小。

如何使用 Lodash

安裝

Lodash 可以透過 npm(Node 套件管理器)或 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

2.找出唯一數組:

使用_.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

2.省略屬性:

使用_.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

2.限制函數執行頻率:

使用_.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 概述允許開發人員創建、編輯 PDF 和從 PDF 中提取內容。 它支援從 URL、HTML 文件和 HTML 字串生成 PDF,為 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

2.準備資料:假設您有以下使用者資料:

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

3.使用 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

4.使用 IronPDF 產生 PDF :使用 IronPDF 從格式化的 HTML 字串產生包含 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 來說,工作令人滿意因為它被重視且有實際影響。