از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
یک شی را از یک آرایه بر اساس مقدار در جاوا اسکریپت حذف کنید
سرفصلهای مطلب
معرفی
در جاوا اسکریپت، آرایه ها یک ساختار داده معمولی و انعطاف پذیر هستند. آنها می توانند هر نوع ارزشی از جمله اشیا را در خود نگه دارند. با این حال، ممکن است زمان هایی وجود داشته باشد که شما نیاز به حذف یک شی از یک آرایه مبتنی بر آن داشته باشید روی ارزش آن
این بایت دو روش را برای رسیدن به این هدف بررسی می کند: Array.findIndex()
و Array.slice()
.
چرا یک شی را بر اساس مقدار حذف کنید؟
هنگامی که با آرایه ها در جاوا اسکریپت سر و کار دارید، ممکن است با موقعیت هایی مواجه شوید که نیاز به حذف یک شی مبتنی بر آن داشته باشید. روی ارزش آن به جای شاخص آن. این به ویژه زمانی مفید است که شما شاخص شی را نمی دانید، یا اگر شی چندین بار در آرایه وجود داشته باشد. حذف یک شی بر اساس مقدار کمک می کند تا مطمئن شوید که تمام نمونه های آن مقدار خاص حذف شده اند و روش بهتری برای مدیریت داده های شما ارائه می دهد.
استفاده کردن Array.filter() برای حذف یک شی
را Array.filter()
متد یک روش همه کاره و مفید برای حذف یک شی از یک آرایه با مقدار آن است. یک آرایه جدید با تمام عناصری که تست ارائه شده توسط تابع callback را پشت سر می گذارند ایجاد می کند.
در اینجا روش استفاده از آن آورده شده است:
const people = ({name: 'Billy', age: 12},{name: 'Timmy', age: 20},{name: 'Tommy', age: 22},{name: 'Jimmy', age: 25});
const minAge = 21;
const filteredPeople = people.filter(p => p.age > minAge);
console.log(filteredPeople); // Output: ({name: 'Tommy', age: 22},{name: 'Jimmy', age: 25})
توجه داشته باشید: را Array.filter()
متد آرایه اصلی را تغییر نمی دهد اما آرایه جدید را برمی گرداند. اگر می خواهید آرایه اصلی را به روز کنید، باید آرایه فیلتر شده را به متغیر اصلی اختصاص دهید.
استفاده از remove() Lodash برای حذف یک شی
لوداش یک کتابخانه ابزار محبوب است که بسیاری از توابع مفید را ارائه می دهد، از جمله یکی برای حذف اشیا از یک آرایه بر اساس مقدار. ممکن است بخواهید از Lodash به جای داخلی استفاده کنید filter()
اگر از نسخه قدیمی Node.js استفاده می کنید که از آن پشتیبانی نمی کند، این روش را انجام دهید.
ابتدا باید Lodash را در پروژه خود قرار دهید. می توانید آن را از طریق npm نصب کنید:
$ npm install lodash
سپس، می توانید از _.remove()
روش حذف یک شی با مقدار آن:
const _ = require('lodash');
let people = ({name: 'Billy', age: 12},{name: 'Timmy', age: 20},{name: 'Tommy', age: 22},{name: 'Jimmy', age: 25});
const minAge = 21;
_.remove(people, p => p.age > minAge);
console.log(people); // Output: ({name: 'Tommy', age: 22},{name: 'Jimmy', age: 25})
توجه داشته باشید: بر خلاف Array.filter()
، _.remove()
متد آرایه اصلی را اصلاح می کند. مطمئن شوید که فقط زمانی از آن استفاده کنید که قصد تغییر آرایه منبع را دارید.
استفاده کردن Array.findIndex() برای حذف یک شی
را Array.findIndex()
متد شاخص اولین عنصر آرایه را برمی گرداند که با تابع آزمایشی ارائه شده مطابقت دارد. اگر هیچ عنصری با تابع تست یافت نشد، آن 1- را برمی گرداند. این آن را به روشی مفید برای یافتن شاخص یک شی در یک آرایه تبدیل می کند.
در اینجا یک مثال است:
let arr = ({name: 'John', age: 25}, {name: 'Jane', age: 30}, {name: 'John', age: 25});
let index = arr.findIndex(obj => obj.name === 'John' && obj.age === 25);
if (index !== -1) {
arr.splice(index, 1);
}
console.log(arr);
// Output: ( { name: 'Jane', age: 30 }, { name: 'John', age: 25 } )
در این مثال، ما در حال یافتن شاخص اولین شیء هستیم name
به عنوان “جان” و age
به عنوان 25. سپس استفاده می کنیم Array.splice()
برای حذف شی در آن شاخص.
استفاده کردن Array.slice() برای حذف یک شی
را Array.slice()
روش را می توان برای حذف یک شی از یک آرایه با ایجاد یک آرایه جدید که شی را حذف می کند استفاده کرد.
در اینجا یک مثال است:
let arr = ({name: 'John', age: 25}, {name: 'Jane', age: 30}, {name: 'John', age: 25});
let index = arr.findIndex(obj => obj.name === 'John' && obj.age === 25);
if (index !== -1) {
let newArr = arr.slice(0, index).concat(arr.slice(index + 1));
console.log(newArr);
// Output: ( { name: 'Jane', age: 30 }, { name: 'John', age: 25 } )
}
در این مثال، ما یک آرایه جدید ایجاد می کنیم که شامل همه عناصر قبل از شی هدف و همه عناصر بعد از شی هدف است، به طور موثر شی هدف را مستثنی می کند.
توجه داشته باشید: به خاطر داشته باشید که Array.slice()
روش آرایه اصلی را تغییر نمی دهد. در عوض، یک آرایه جدید را با اصلاحی که شما انجام داده اید برمی گرداند.
نتیجه
در جاوا اسکریپت، حذف یک شی از یک آرایه با مقدار آن به کمی کار بیشتر از حذف یک مقدار اولیه نیاز دارد. با این حال، با Array.filter()
، _.remove()
، Array.findIndex()
و Array.slice()
روش ها، کاملا قابل انجام است. یاد آوردن، Array.findIndex()
برای یافتن شاخص شیء استفاده می شود و Array.splice()
یا Array.slice()
برای حذف جسم استفاده می شود. این روش ها روشی انعطاف پذیر برای دستکاری آرایه ها در جاوا اسکریپت ارائه می کنند.
(برچسبها برای ترجمه)# جاوا اسکریپت
منتشر شده در 1403-01-01 01:05:04