Codespian | کدسپین – Telegram
Codespian | کدسپین
65 subscribers
22 photos
2 videos
12 files
82 links
Codespian Official Community Channel
Admin: @AMIRALI_H0SSEINI
Download Telegram
متد every در جاوااسکریپت

متد every در جاوااسکریپت یکی از متدهای آرایه است که برای بررسی این که آیا همه عناصر یک آرایه با یک شرط خاص مطابقت دارند یا خیر، استفاده می‌شود. این متد یک تابع callback را به عنوان پارامتر دریافت می‌کند و اگر تمام عناصر آرایه شرط مشخص شده در تابع callback را برآورده کنند، مقدار true را برمی‌گرداند. در غیر این صورت، مقدار false برمی‌گرداند.

نحوه استفاده از متد every

ساختار کلی متد every به شکل زیر است:

array.every(callback(element[, index[, array]])[, thisArg])


پارامترها:

• بخش callback: تابعی که برای هر عنصر آرایه اجرا می‌شود. این تابع باید حداقل یک پارامتر (مقدار عنصر) را دریافت کند.

• بخش element: عنصر فعلی آرایه.

• بخش index (اختیاری): ایندکس عنصر فعلی.

• بخش array (اختیاری): خود آرایه‌ای که متد every روی آن فراخوانی شده است.

• بخش thisArg (اختیاری): مقداری که به عنوان this در تابع callback استفاده می‌شود.

مثال

بیایید نگاهی به یک مثال بیندازیم:

const numbers = [2, 4, 6, 8];

const allEven = numbers.every(function(num) {
return num % 2 === 0;
});

console.log(allEven); // خروجی: true


در این مثال، ما یک آرایه از اعداد داریم و با استفاده از متد every بررسی می‌کنیم که آیا همه اعداد زوج هستند یا نه. چون همه اعداد زوج هستند، خروجی true خواهد بود.

مثال دیگر

حالا بیایید مثالی دیگر را بررسی کنیم:

const ages = [18, 21, 16, 25];

const allAdults = ages.every(function(age) {
return age >= 18;
});

console.log(allAdults); // خروجی: false


در اینجا، ما بررسی می‌کنیم که آیا همه افراد بزرگسال هستند یا خیر. چون یکی از اعداد (16) کمتر از 18 است، خروجی false خواهد بود.

استفاده از تابع پیکانی (Arrow Function)

می‌توانید از تابع پیکانی (Arrow Function) برای نوشتن کد به صورت مختصرتر استفاده کنید:

const numbers = [2, 4, 6, 8];

const allEven = numbers.every(num => num % 2 === 0);

console.log(allEven); // خروجی: true


نکات مهم

1. اگر آرایه خالی باشد، متد every به طور پیش‌فرض true را برمی‌گرداند.

2. اگر هر یک از عناصر آرایه شرط را برآورده نکند، متد بلافاصله مقدار false را برمی‌گرداند و دیگر به بررسی باقی عناصر ادامه نمی‌دهد.

متد every ابزاری بسیار مفید برای بررسی شرایط در آرایه‌ها است و می‌تواند در بسیاری از سناریوها مورد استفاده قرار گیرد.
1
🧑‍💻 حرف نزن، کار کن!

میگی کلی ایده تو ذهنته؟ خب که چی؟ 🤷‍♂️
تا وقتی دست به کار نشی، هیچی تغییر نمیکنه!

یه حرکت کوچیک امروز، از صدتا فکرِ فردا بهتره!
مثل بارون باش، آروم ولی پیوسته... سنگم جلوت کم میاره!

📌 پ.ن: زندگی با "شاید فردا"ها عوض نمیشه... همین امروز شروع کن!
👍21
متد findIndex در جاوااسکریپت برای پیدا کردن ایندکس اولین عنصری که با شرایط مشخص شده در یک تابع تست مطابقت دارد، استفاده می‌شود. این متد بر روی آرایه‌ها کار می‌کند و اگر عنصری پیدا شود که شرایط را برآورده کند، ایندکس آن عنصر را برمی‌گرداند. در غیر این صورت، -1 را برمی‌گرداند.

سینتکس

array.findIndex(callback(element[, index[, array]])[, thisArg])


پارامترها

• بخش callback: تابعی که برای هر عنصر آرایه فراخوانی می‌شود. این تابع می‌تواند سه آرگومان دریافت کند:

• بخش element: عنصر فعلی که در حال بررسی است.

• بخش index (اختیاری): ایندکس عنصر فعلی.

• بخش array (اختیاری): آرایه‌ای که متد findIndex بر روی آن فراخوانی شده است.

• بخش thisArg (اختیاری): مقداری که به عنوان this در تابع callback استفاده می‌شود.

مثال

const numbers = [4, 9, 16, 25];

const isEven = (element) => element % 2 === 0;

const index = numbers.findIndex(isEven);

console.log(index); // خروجی: 0 (چون 4 اولین عدد زوج است)


در این مثال، تابع isEven بررسی می‌کند که آیا عدد زوج است یا نه. متد findIndex ایندکس اولین عدد زوج را در آرایه numbers برمی‌گرداند.

مثال دیگر با استفاده از ایندکس

const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];

const index = users.findIndex(user => user.id === 2);

console.log(index); // خروجی: 1 (چون Bob با id 2 در ایندکس 1 قرار دارد)


نکته

اگر هیچ عنصری پیدا نشود که با شرایط مطابقت داشته باشد، findIndex -1 را برمی‌گرداند:

const index = numbers.findIndex(num => num > 30);
console.log(index); // خروجی: -1 (چون هیچ عددی بزرگتر از 30 وجود ندارد)


با استفاده از متد findIndex می‌توانید به راحتی ایندکس عناصر مورد نظر خود را در آرایه‌ها پیدا کنید.
👍1
متد find در جاوااسکریپت برای پیدا کردن اولین عنصری که با شرایط مشخص شده در یک تابع تست مطابقت دارد، استفاده می‌شود. این متد بر روی آرایه‌ها کار می‌کند و اگر عنصری پیدا شود که شرایط را برآورده کند، آن عنصر را برمی‌گرداند. در غیر این صورت، undefined را برمی‌گرداند.

سینتکس

array.find(callback(element[, index[, array]])[, thisArg])


پارامترها

• بخش callback: تابعی که برای هر عنصر آرایه فراخوانی می‌شود. این تابع می‌تواند سه آرگومان دریافت کند:

• بخش element: عنصر فعلی که در حال بررسی است.

• بخش index (اختیاری): ایندکس عنصر فعلی.

• بخش array (اختیاری): آرایه‌ای که متد find بر روی آن فراخوانی شده است.

• بخش thisArg (اختیاری): مقداری که به عنوان this در تابع callback استفاده می‌شود.

مثال

const numbers = [4, 9, 16, 25];

const evenNumber = numbers.find(element => element % 2 === 0);

console.log(evenNumber); // خروجی: 4 (چون 4 اولین عدد زوج است)


در این مثال، تابعی که به متد find داده شده است، بررسی می‌کند که آیا عدد زوج است یا نه. متد find اولین عدد زوج را در آرایه numbers برمی‌گرداند.

مثال دیگر با استفاده از اشیاء

const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];

const user = users.find(user => user.id === 2);

console.log(user); // خروجی: { id: 2, name: 'Bob' } (چون Bob با id 2 وجود دارد)


نکته

اگر هیچ عنصری پیدا نشود که با شرایط مطابقت داشته باشد، find مقدار undefined را برمی‌گرداند:

const result = numbers.find(num => num > 30);
console.log(result); // خروجی: undefined (چون هیچ عددی بزرگتر از 30 وجود ندارد)


با استفاده از متد find می‌توانید به راحتی اولین عنصر مورد نظر خود را در آرایه‌ها پیدا کنید. این متد به خصوص در کار با آرایه‌های اشیاء بسیار مفید است.
👍1
متد splice در جاوااسکریپت یکی از متدهای آرایه است که برای تغییر محتوای یک آرایه استفاده می‌شود. این متد می‌تواند برای حذف، اضافه کردن یا جایگزینی عناصر در آرایه به کار رود.

نحوه استفاده از متد splice

سینتکس متد splice به صورت زیر است:

array.splice(start, deleteCount, item1, item2, ...)


پارامترها:

1. start: ایندکس (index) که از آنجا تغییرات آغاز می‌شود. اگر مقدار منفی باشد، به انتهای آرایه نسبت داده می‌شود.

2. deleteCount: تعداد عناصری که باید از آرایه حذف شوند. اگر این مقدار صفر باشد، هیچ عنصری حذف نمی‌شود.

3. item1, item2, ...: عناصری که باید به آرایه اضافه شوند. این پارامترها اختیاری هستند.

مثال‌ها:

1. حذف عناصر از آرایه

let fruits = ['apple', 'banana', 'orange', 'grape'];
fruits.splice(1, 2); // از ایندکس 1، 2 عنصر را حذف می‌کند
console.log(fruits); // ['apple', 'grape']


2. اضافه کردن عناصر به آرایه

let fruits = ['apple', 'banana', 'orange'];
fruits.splice(2, 0, 'grape', 'kiwi'); // از ایندکس 2، هیچ عنصری را حذف نمی‌کند و 'grape' و 'kiwi' را اضافه می‌کند
console.log(fruits); // ['apple', 'banana', 'grape', 'kiwi', 'orange']


3. جایگزینی عناصر در آرایه

let fruits = ['apple', 'banana', 'orange'];
fruits.splice(1, 1, 'grape'); // از ایندکس 1، یک عنصر را حذف کرده و 'grape' را جایگزین آن می‌کند
console.log(fruits); // ['apple', 'grape', 'orange']


نتیجه‌گیری

متد splice یک ابزار قدرتمند برای مدیریت آرایه‌ها در جاوااسکریپت است و می‌توانید با استفاده از آن به راحتی عناصر را حذف، اضافه یا جایگزین کنید.
👍1
متد filter در جاوااسکریپت یکی از متدهای آرایه‌ها (Arrays) است که برای فیلتر کردن عناصر یک آرایه بر اساس یک شرط خاص استفاده می‌شود. این متد یک آرایه جدید را برمی‌گرداند که شامل عناصری است که شرط مشخص شده را برآورده می‌کنند.

نحوه استفاده از متد filter

ساختار کلی متد filter به صورت زیر است:

let newArray = array.filter(callback(element[, index[, array]])[, thisArg]);


array: آرایه‌ای که می‌خواهید بر روی آن فیلتر کنید.

callback: تابعی که برای هر عنصر آرایه فراخوانی می‌شود. این تابع باید یک مقدار بولی (true یا false) برگرداند.

element: عنصر فعلی آرایه.

index (اختیاری): ایندکس عنصر فعلی.

array (اختیاری): خود آرایه‌ای که بر روی آن فیلتر انجام می‌شود.

thisArg (اختیاری): مقداری که به عنوان this در تابع callback استفاده می‌شود.

مثال

فرض کنید ما یک آرایه از اعداد داریم و می‌خواهیم فقط اعداد زوج را فیلتر کنیم:

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

let evenNumbers = numbers.filter(function(number) {
return number % 2 === 0; // شرط برای پیدا کردن اعداد زوج
});

console.log(evenNumbers); // خروجی: [2, 4, 6, 8, 10]


استفاده از Arrow Function

می‌توانید از Arrow Function نیز استفاده کنید تا کد شما کوتاه‌تر و خواناتر باشد:

let evenNumbers = numbers.filter(number => number % 2 === 0);
console.log(evenNumbers); // خروجی: [2, 4, 6, 8, 10]


نتیجه‌گیری

متد filter ابزاری بسیار مفید برای کار با آرایه‌ها در جاوااسکریپت است و به شما این امکان را می‌دهد که به سادگی عناصری را که شرایط خاصی را برآورده می‌کنند، جدا کنید.
👍1
متد map در جاوااسکریپت یکی از متدهای آرایه است که به شما اجازه می‌دهد تا یک تابع را بر روی هر عنصر یک آرایه اعمال کنید و یک آرایه جدید با نتایج آن تابع ایجاد کنید. این متد به صورت غیرمستقیم تغییراتی در آرایه اصلی ایجاد نمی‌کند و آرایه جدیدی را برمی‌گرداند.

نحوه استفاده

ساختار کلی متد map به شکل زیر است:

let newArray = array.map(function(element, index, array) {
// عملیاتی که می‌خواهید بر روی هر عنصر انجام دهید
return newElement; // عنصر جدیدی که می‌خواهید به آرایه جدید اضافه کنید
});


element: عنصر فعلی که در حال پردازش است.

index: ایندکس (شاخص) عنصر فعلی (اختیاری).

array: آرایه اصلی (اختیاری).

مثال

در زیر یک مثال ساده از استفاده از متد map آورده شده است:

const numbers = [1, 2, 3, 4, 5];

// استفاده از متد map برای دو برابر کردن هر عدد
const doubled = numbers.map(function(num) {
return num * 2;
});

console.log(doubled); // خروجی: [2, 4, 6, 8, 10]


استفاده از Arrow Function

می‌توانید از Arrow Function نیز برای نوشتن کد خود استفاده کنید که کد را مختصرتر می‌کند:

const numbers = [1, 2, 3, 4, 5];

// استفاده از Arrow Function
const doubled = numbers.map(num => num * 2);

console.log(doubled); // خروجی: [2, 4, 6, 8, 10]


نکات مهم

1. متد map یک آرایه جدید را برمی‌گرداند و آرایه اصلی را تغییر نمی‌دهد.

2. اگر تابعی که به map داده می‌شود، undefined برگرداند، آن عنصر در آرایه جدید به عنوان undefined قرار می‌گیرد.

3. طول آرایه جدید همیشه برابر با طول آرایه اصلی خواهد بود.

نتیجه‌گیری

متد map ابزاری قدرتمند و مفید برای کار با آرایه‌ها در جاوااسکریپت است و می‌تواند به شما کمک کند تا به سادگی و به صورت تابعی، تغییرات دلخواه را بر روی عناصر یک آرایه اعمال کنید.
متد padStart در جاوااسکریپت به شما اجازه می‌دهد تا یک رشته را به طول مشخصی برسانید و اگر طول رشته کوتاه‌تر از طول هدف باشد، با استفاده از یک کاراکتر مشخص (یا کاراکترهای پیش‌فرض) در ابتدای آن پر کنید. این متد برای فرمت کردن رشته‌ها و ایجاد نمایش‌های زیباتر بسیار مفید است.

نحوه استفاده

ساختار کلی متد padStart به شکل زیر است:

string.padStart(targetLength, padString);


targetLength: طول نهایی رشته‌ای که می‌خواهید به آن برسید.

padString: رشته‌ای که می‌خواهید برای پر کردن در ابتدای رشته اصلی استفاده کنید (اختیاری). اگر این پارامتر ارائه نشود، از کاراکتر پیش‌فرض (که معمولاً یک فضای خالی است) استفاده می‌شود.

مثال‌ها

مثال 1: استفاده ساده

let str = "5";
let paddedStr = str.padStart(2, '0');

console.log(paddedStr); // خروجی: "05"


در این مثال، رشته "5" به طول ۲ رسیده و با کاراکتر '0' پر شده است.

مثال 2: استفاده از کاراکترهای دیگر

let str = "123";
let paddedStr = str.padStart(6, '*');

console.log(paddedStr); // خروجی: "***123"


در اینجا، رشته "123" به طول ۶ رسیده و با کاراکتر '*' پر شده است.

مثال 3: طول هدف کمتر یا برابر با طول فعلی

let str = "hello";
let paddedStr = str.padStart(3, '0');

console.log(paddedStr); // خروجی: "hello"


اگر طول هدف کمتر یا برابر با طول فعلی رشته باشد، متد padStart تغییری در رشته ایجاد نمی‌کند.

نکات مهم

1. اگر padString طولش بیشتر از طول مورد نیاز باشد، فقط قسمت چپ آن به اندازه کافی برای پر کردن استفاده می‌شود.

   let str = "42";
let paddedStr = str.padStart(5, 'abc');

console.log(paddedStr); // خروجی: "ab42"


2. اگر targetLength یک عدد منفی یا صفر باشد، متد padStart رشته اصلی را برمی‌گرداند.

نتیجه‌گیری

متد padStart ابزاری مفید برای فرمت کردن و پر کردن رشته‌ها است که می‌تواند به شما کمک کند تا داده‌های خود را به شکل زیباتر و منظم‌تری نمایش دهید.
اینجا کلی تم Vscode هست که می‌تونی بنا به سلیقت انتخاب کنی 👌🏻

https://vscodethemes.com
🔥1
In another world 🌚🧑‍💻
👍3
تو این پست میخوایم راجب یک قابلیت خیلی فوق العاده که تایپ اسکریپت بوجود اورده صحبت کنیم ، متادیتا !

متادیتا (Metadata) در TypeScript مثل یادداشت‌های نامرئی روی کد هامونه که به سیستممون میگه چطور با اجزای مختلف برنامه رفتار کنه. این ویژگی، به خصوص وقتی با Decoratorها ترکیب میشه، می‌تونه برنامه‌نویسی رو حرفه‌ای‌تر و شیرین تر کنه !

چرا متادیتا مهمه؟
انعطاف‌پذیری: بدون تغییر منطق اصلی کد، رفتارش رو اصلاح می‌کنه.
کاهش کد تکراری: مثلاً برای اعتبارسنجی، دیباگ یا لاگینگ.
قابلیت استفاده در فریمورک‌ها: مثل NestJS یا Angular که از متادیتا برای Routeها و Dependency Injection استفاده میشه .

چه موقع از متادیتا استفاده کنیم؟
• ساخت کتابخانه/فریمورک
• اعتبارسنجی خودکار داده‌ها
• پیاده‌سازی AOP (برنامه‌نویسی جنبه‌گرا)

اگه میخوای بیشتر راجبش بدونی راجب reflect metadata api بخون.
👍1
در جاوا اسکریپت، داده‌ها به دو دسته اصلی تقسیم می‌شوند: داده‌های اولیه (Primitive) و داده‌های غیر اولیه (Non-Primitive).

1. داده‌های اولیه (Primitive Data Types)

داده‌های اولیه شامل نوع‌هایی هستند که به صورت مستقیم مقدار را ذخیره می‌کنند و غیرقابل تغییر (immutable) هستند. در جاوا اسکریپت، انواع داده‌های اولیه عبارتند از:

Number: برای ذخیره اعداد (مثلاً 10، 15.5).

String: برای ذخیره رشته‌ها (مثلاً "Hello", 'World').

Boolean: برای ذخیره مقادیر منطقی (true یا false).

Undefined: وقتی که یک متغیر تعریف شده باشد اما مقداری به آن اختصاص داده نشده باشد.

Null: نمایان‌گر عدم وجود مقدار است.

Symbol: نوعی از داده که برای ایجاد شناسه‌های منحصر به فرد استفاده می‌شود (از ES6 به بعد).

BigInt: برای کار با اعداد بزرگ‌تر از محدوده Number.

مثال:

let num = 10;               // Number
let str = "Hello"; // String
let isTrue = true; // Boolean
let notDefined; // Undefined
let emptyValue = null; // Null
let uniqueSymbol = Symbol('unique'); // Symbol
let bigIntValue = BigInt(9007199254740991); // BigInt


2. داده‌های غیر اولیه (Non-Primitive Data Types)

داده‌های غیر اولیه شامل نوع‌هایی هستند که می‌توانند شامل مجموعه‌ای از مقادیر باشند و قابل تغییر (mutable) هستند. در جاوا اسکریپت، انواع داده‌های غیر اولیه عبارتند از:

Object: برای ذخیره مجموعه‌ای از کلید-مقدارها. می‌تواند شامل انواع مختلف داده‌ها باشد.

Array: نوع خاصی از شیء که برای ذخیره مجموعه‌ای از مقادیر استفاده می‌شود.

Function: توابع نیز نوعی از اشیاء هستند.

مثال:

// Object
let person = {
name: "Ali",
age: 30,
isStudent: false
};

// Array
let fruits = ["apple", "banana", "cherry"];

// Function
function greet() {
console.log("Hello!");
}


جمع‌بندی

• داده‌های اولیه به صورت مستقیم مقدار را نگه می‌دارند و غیرقابل تغییر هستند.

• داده‌های غیر اولیه می‌توانند شامل مجموعه‌ای از مقادیر باشند و قابل تغییر هستند.

این دو دسته اصلی داده‌ها در جاوا اسکریپت به شما کمک می‌کنند تا برنامه‌های خود را به طور مؤثرتر مدیریت کنید.
1👍1