Lodash یک کتابخانه جاوا اسکریپت است که توابع کاربردی را برای کارهای برنامه نویسی معمولی با استفاده از مدل برنامه نویسی تابعی ارائه میکند. معرفی Lodash را در ادامه می خوانید.
این کتابخانه که با مرورگرهای وب و Node.js کار می کند، می تواند داده ها را تغییر داده و تبدیل کند و بسیاری کارهای دیگر.
در این مقاله یاد می گیرید که چگونه از lodash برای دستکاری آرایه ها، رشته ها و اشیاء استفاده کنید و با ویژگی های پیشرفته آن مانند ترکیب تابع آشتا شوید.
شروع کار با Lodash
میتوانید به یکی از دو روش زیر lodash را به برنامه خود اضافه کنید: استفاده از Content Delivery Network (CDN) یا نصب آن با استفاده از npm یا yarn.
برای استفاده مستقیم از lodash در مرورگر، لینک lodash CDN زیر را کپی کرده و در قسمت head فایل HTML خود قرار دهید:
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js"
type="text/javascript"></script>
با استفاده از این روش، می توانید اسکریپت ها را با استفاده از lodash در HTML خود اجرا کنید.
برای استفاده از lodash در Node.js، باید آن را در فهرست پروژه خود نصب کنید. برای این کار می توانید از npm یا yarn استفاده کنید:
npm install --save lodash
# or
yarn add lodash
اکنون می توانید از lodash در جاوا اسکریپت خود استفاده کنید:
// Requiring the lodash library
const _ = require("lodash");
// Using the _.sum method
const numbers = [10, 20, 30, 40, 50];
const sum = _.sum(numbers);
console.log(sum);
برای اجرای فایل جاوا اسکریپت، دستور node را وارد کنید:
node [Your script name]
دستکاری آرایه ها در lodash
Lodash با مجموعه ای از روش ها برای دستکاری آرایه ها ارائه می شود که عملکرد و ویژگی هایی فراتر از Array داخلی جاوا اسکریپت ارائه می کند.
این روش یک آرایه را به گروه هایی از آرایه های کوچکتر با اندازه معین تقسیم می کند. نتیجه نهایی ممکن است کوچکتر از اندازه درخواستی شما باشد.
برای مثال:
const array = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g' ];
const newArray = _.chunk(array, 2)
console.log(newArray)
// Output:
// [ [ 'a', 'b' ], [ 'c', 'd' ], [ 'e', 'f' ], [ 'g' ] ]
Concat
این روش با اضافه ک دن مقادیر به انتهای یک آرایه موجود، یک آرایه جدید تولید می کند.
مثلا:
const array = [ 1, 2, 'a' ];
const newArray = _.concat(array, 5, 'b', [ 8 ], [ [ 9 ] ]);
console.log(newArray);
// Output:
// [ 1, 2, 'a', 5, 'b', 8, [ 9 ] ]
Join
این روش یک رشته را با ترکیب اجزا یک آرایه ایجاد می کند. جداکننده پیش فرضی که استفاده می شود کاما است:
const array = [ "l", "o", "d", "a", "s", "h" ];
const newArray = _.join(array);
console.log(newArray);
// Output:
// l,o,d,a,s,h
const newArray = _.join(array, "-");
console.log(newArray);
// Output:
// l-o-d-a-s-h
String Manipulation In Lodash
با استفاده از جاوا اسکریپت، قالببندی رشته فرآیندی ساده است. اما lodash آن را ساده تر می کند.
برخی از رایج ترین کارهایی رشته که می توانید با lodash انجام دهید عبارتند از:
.startsWith و .endsWith
این دو روش بررسی می کنند که آیا یک رشته به ترتیب با یک رشته فرعی شروع یا پایان می یابد.
مثلا:
const string = "lodash";
console.log(_.startsWith(string, "l"));
// Output: true
console.log(_.startsWith(string, "o"));
// Output: false
console.log(_.endsWith(string, "m"));
// Output: false
console.log(_.endsWith(string, "h"));
// Output: true
Repeat
این روش بارها و بارها یک رشته را چندین بار تکرار می کند. رشته را به عنوان آرگومان اول و تعداد تکرارها را به عنوان آرگومان دوم در نظر می گیرد:
const string = "lodash"
const newString = _.repeat(string, 3);
console.log(newString);
// Output: lodashlodashlodash
.trim
این روش فضای خالی ابتدا و انتهایی را حذف می کند. همچنین می توانید از آن برای حذف هر کاراکتر خاص در ابتدا و انتهای یک رشته استفاده کنید.
مثلا:
// Removing leading & trailing whitespace
const string = " bar "
const newString = _.trim(string)
console.log(newString);
// Output: bar
// Removing specified characters
const string = ",bar,"
const newString = _.trim(string, ",")
console.log(newString);
// Output: bar
. merge
روش _.merge() یک شی جدید را با ترکیب خصوصیات اشیاء ورودی ایجاد می کند.
مثلا:
const books = {
'Mathematics': 4,
'Science': 7
};
const notes = {
'Science': 3 ,
'Chemistry': 5
};
_.merge(books, notes);
console.log(books);
// Output:
// { Mathematics: 4, Science: 3, Chemistry: 5 }
has
این متد اگر یک سری از ویژگیها در یک شی وجود داشته باشد true و در غیر این صورت false را برمیگرداند.
مثلا:
const books = {
'Mathematics': 4,
'Science': 7
};
console.log(_.has(books, "Mathematics"));
// Output: true
.omit
این متد یک شی جدید را با حذف ویژگی های مشخص شده از شی داده شده برمی گرداند.
مثلا:
var books = {
'Mathematics': 4,
'Science': 3 ,
'Chemistry': 5
};
console.log(_.omit(books, "Science"));
// Output: { Mathematics: 4, Chemistry: 5 }
ترکیب تابع در lodash
ترکیب تابع تکنیکی است که میتوانید در یک زبان برنامهنویسی از آن استفاده کنید. که شامل ترکیب دو یا چند تابع در یک تابع جدید با فراخوانی هر تابع به ترتیب خاص است. این ویژگی شما را قادر می سازد تا توابع پیچیده تر را با استفاده از توابع ساده تر ایجاد کنید.
برای اعمال این تکنیک، lodash با توابع _.flow و _.flowRight ارائه میشود. تابع _.flow() لیستی از توابع را به عنوان آرگومان می پذیرد و یک تابع جدید را به عنوان خروجی می دهد که توابع را به همان ترتیبی که شما آنها را ارسال می کنید اعمال می کند. تابع _.flowRight() همین کار را انجام می دهد، اما توابع را در آن فراخوانی می کند.
مثلا:
function addFive(number) {
return number + 5
}
function timesTwo(number) {
return number * 2
}
const addFiveAndTimesTwo = _.flow([addFive, timesTwo]);
const addFiveAndTimesTwoReverse = _.flowRight([addFive, timesTwo]);
console.log(addFiveAndTimesTwo(3));
// Output: 16
console.log(addFiveAndTimesTwoReverse(3));
// Output: 11
کد بالا توابع addFive و timesTwo را تعریف می کند. تابع addFive نتیجه جمع کردن 5 را با یک عدد معین برمی گرداند. تابع timesTwo یک عدد ورودی را در 2 ضرب می کند و نتیجه را برمی گرداند.
سپس کد از تابع _.flow() برای ترکیب آنها و تولید تابع جدید، addFiveAndTimesTwo استفاده می کند. این تابع جدید ابتدا عملیات addFive را روی آرگومان خود قبل از اجرای عملیات timesTwo روی نتیجه نهایی انجام می دهد.
تابع _.flowRight() یک تابع جدید تولید می کند که همان عملکرد را انجام می دهد، اما به صورت معکوس.
در نهایت، این کد دو تابع جدید را فراخوانی می کند و 3 را به عنوان آرگومان ارسال کرده و نتایج را نیز ثبت می کند.
مزایای کار با Lodash
شما می توانید از lodash برای ساده سازی کد ها استفاده کنید و پروژه های خود را انعطاف پذیرتر و راحت تر کنید.