چهار متد کاربردی برای جستجوی داده در آرایه‌های JavaScript

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

  • یک مقدار بولی (true/false) برای تأیید وجود آن دریافت کنید

  • اندیس (Index) موقعیت مقدار در آرایه را پیدا کنید

  • یا یک آرایه جدید شامل تمام نتایج جستجو داشته باشید

قبل از ECMAScript 6، معمولاً از حلقه‌ی for برای تکرار روی تمام آیتم‌ها استفاده می‌کردید.
امروزه چندین متد داخلی وجود دارد که بسیاری از این نیازها را به صورت ساده و خوانا حل می‌کنند.

در این مقاله، با Array.includes()، Array.indexOf، Array.find() و Array.filter آشنا می‌شوید.


پیش‌نیازها

برای دنبال کردن این مقاله، بهتر است:

  • با آرایه‌ها در JavaScript آشنایی داشته باشید


استفاده از includes()

متد includes() بررسی می‌کند که آیا یک مقدار در آرایه وجود دارد یا نه و true یا false برمی‌گرداند.

سینتکس:

arr.includes(valueToFind[, fromIndex]);
  • valueToFind: مقداری که می‌خواهید جستجو کنید

  • fromIndex (اختیاری): اندیسی که جستجو از آن شروع شود (پیش‌فرض 0)

مثال:

const alligatorFacts = ["thick scales", 80, "4 foot tail", "rounded snout", 80];

alligatorFacts.includes(“thick scales”);
// true

alligatorFacts.includes(“thick scales”, 1);
// false

نکته: includes() از مقایسه‌ی سختگیرانه (strict comparison) استفاده می‌کند:

alligatorFacts.includes(80); // true
alligatorFacts.includes('80'); // false
  • کاربرد: وقتی فقط می‌خواهید بررسی کنید که یک مقدار وجود دارد یا نه.


استفاده از indexOf()

متد indexOf() اولین اندیس یک مقدار در آرایه را برمی‌گرداند.
اگر مقداری یافت نشد، -1 باز می‌گرداند.

سینتکس:

arr.indexOf(searchElement[, fromIndex]);

مثال:

alligatorFacts.indexOf("rounded snout");
// 3
alligatorFacts.indexOf(“soft and fluffy”);
// -1alligatorFacts.indexOf(80);
// 1

alligatorFacts.indexOf(80, 2);
// -1

نکته: برای یافتن آخرین مقدار، می‌توانید از lastIndexOf() استفاده کنید.

  • کاربرد: وقتی فقط به اندیس اولین نتیجه‌ی جستجو نیاز دارید.


استفاده از find()

متد find() اولین مقداری در آرایه را که با شرط یک تابع مطابقت دارد، برمی‌گرداند.
اگر مقداری یافت نشود، undefined باز می‌گرداند.

سینتکس:

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

مثال:

const alligatorFacts = ["thick scales", 80, "4 foot tail", "rounded snout"];

alligatorFacts.find(el => el.length < 13);
// “thick scales”

  • متد find() فقط اولین مقدار مطابق با شرط را باز می‌گرداند.

مثال با اندیس:

alligatorFacts.find((el, idx) => typeof el === "string" && idx === 2);
// "4 foot tail"

نکته: برای گرفتن اندیس به جای مقدار، می‌توانید از findIndex() استفاده کنید.

  • کاربرد: وقتی فقط به یک مقدار خاص مطابق با شرط نیاز دارید.


استفاده از filter()

متد filter() یک آرایه جدید شامل تمام مقادیری که با شرط یک تابع مطابقت دارند، برمی‌گرداند.
اگر هیچ مقداری پیدا نشد، آرایه‌ی خالی باز می‌گرداند.

سینتکس:

let newArray = arr.filter(callback(currentValue[, index[, array]]) {
// اگر true شود، عنصر به آرایه جدید اضافه می‌شود
}[, thisArg]);

مثال:

alligatorFacts.filter(el => el === 80);
// [80, 80]
  • کاربرد: وقتی می‌خواهید چندین مقدار مطابق با شرط را به دست آورید.


جمع‌بندی

  • فقط می‌خواهید بدانید مقدار وجود دارد یا نه؟includes()

  • فقط می‌خواهید مقدار را بگیریدfind() برای یک مورد، filter() برای چند مورد

  • فقط می‌خواهید اندیس مقدار را پیدا کنید → indexOf() برای primitive، findIndex() برای تابع

از همراهی شما با پارمین کلود متشکریم.

Click to rate this post!
[Total: 0 Average: 0]

نظرات کاربران

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *