از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
موارد را از آرایه ها بر اساس مقدار در جاوا اسکریپت حذف کنید
سرفصلهای مطلب
معرفی
به این بایت خوش آمدید، جایی که روشهای مختلف برای حذف یک آیتم از آرایه بر اساس مقدار در جاوا اسکریپت را بررسی خواهیم کرد. این یک عملیات معمولی است که ممکن است لازم باشد هنگام کدنویسی انجام دهید و جاوا اسکریپت چندین راه برای انجام آن ارائه می دهد. ما تمرکز می کنیم روی به طور خاص دو روش: filter()
روش و splice()
روش.
آرایه ها در جاوا اسکریپت
قبل از اینکه به روشهای حذف آیتمها بپردازیم، اجازه دهید به سرعت بررسی کنیم که چه آرایههایی در جاوا اسکریپت وجود دارد. آرایه یک متغیر خاص است که می تواند بیش از یک مقدار را در یک زمان نگه دارد. هر مقدار (که عنصر نیز نامیده می شود) در یک آرایه دارای یک موقعیت عددی است که به عنوان شاخص آن شناخته می شود که از 0 شروع می شود.
let fruits = ('apple', 'banana', 'cherry');
console.log(fruits(0)); // Outputs: apple
با استفاده از روش فیلتر
یکی از رایجترین راهها برای حذف یک آیتم از یک آرایه بر اساس مقدار، استفاده از عبارت است filter()
روش. این filter()
متد یک آرایه جدید با تمام عناصری که تست پیاده سازی شده توسط تابع ارائه شده را پشت سر می گذارند ایجاد می کند.
در اینجا مثالی وجود دارد که در آن مقدار ‘banana’ را از آرایه حذف می کنیم:
let fruits = ('apple', 'banana', 'cherry');
let filteredFruits = fruits.filter(value => value !== 'banana');
console.log(filteredFruits); // Outputs: ('apple', 'cherry')
در مثال بالا، ما در حال ایجاد یک آرایه جدید هستیم، filteredFruits
، که شامل تمام عناصر از fruits
آرایه به جز “موز”.
توجه داشته باشید: این filter()
متد آرایه اصلی را تغییر نمی دهد. آرایه جدیدی را برمی گرداند که شرایط ارائه شده در تابع callback را برآورده می کند.
با استفاده از روش Splice
راه دیگر برای حذف یک آیتم از یک آرایه بر اساس مقدار، استفاده از عبارت است splice()
روش. بر خلاف filter()
، splice()
آرایه اصلی را با حذف یا جایگزینی عناصر موجود تغییر می دهد.
ابتدا باید شاخص مقداری را که می خواهیم با استفاده از آن حذف کنیم، پیدا کنیم indexOf()
روش. وقتی ایندکس را داشتیم، می توانیم استفاده کنیم splice()
برای حذف عنصر
در اینجا مثالی وجود دارد که در آن “موز” را از آرایه حذف می کنیم:
let fruits = ('apple', 'banana', 'cherry');
let index = fruits.indexOf('banana');
if (index !== -1) {
fruits.splice(index, 1);
}
console.log(fruits); // Outputs: ('apple', 'cherry')
توجه داشته باشید: این splice()
روش میکند آرایه اصلی را تغییر دهید و بنابراین می تواند مخرب باشد. هنگام استفاده از این روش مطمئن شوید که به آرایه اصلی دست نخورده نیاز ندارید.
با استفاده از کتابخانه لوداش
لوداش یک کتابخانه ابزار محبوب جاوا اسکریپت است که روشهای مفید بسیاری را برای دستکاری و ترکیب آرایهها، اشیا و دیگر انواع دادهها ارائه میکند. یکی از این روش ها است _.pull()
، که با حذف تمام نمونه های مقادیر مشخص شده آرایه را جهش می دهد.
const _ = require('lodash');
let array = (1, 2, 3, 2, 4, 2, 5);
_.pull(array, 2);
console.log(array);
این خروجی خواهد داشت:
(1, 3, 4, 5)
این _.pull()
متد آرایه اصلی را جهش می دهد. اگر می خواهید آرایه اصلی را بدون تغییر نگه دارید، می توانید از آن استفاده کنید _.without()
، که یک آرایه جدید را برمی گرداند.
حذف ارزش های غیر ابتدایی
حذف مقادیر غیر ابتدایی مانند اشیا یا آرایه ها از یک آرایه کمی پیچیده تر است زیرا دو شی یا آرایه کاملاً برابر نیستند، حتی اگر ویژگی ها یا عناصر یکسانی داشته باشند.
برای رسیدگی به مواردی از این دست، می توانید از filter()
روش ترکیب شده با JSON.stringify()
برای حذف مقادیر غیر ابتدایی:
let array = ({a: 1}, {b: 2}, {a: 1}, {c: 3});
let valueToRemove = {a: 1};
array = array.filter(item => JSON.stringify(item) !== JSON.stringify(valueToRemove));
console.log(array);
این خروجی خواهد داشت:
( { b: 2 }, { c: 3 } )
این روش کمی هک است و به همین دلیل آن را توصیه نمی کنم. یک رویکرد بهتر ممکن است این باشد که ابتدا بررسی کنید که آیا شی دارای خاصیت مورد نظر شما است و سپس مقدار:
let array = ({a: 1}, {b: 2}, {a: 1}, {c: 3});
let valueToRemove = {a: 1};
array = array.filter(item => item.hasOwnProperty('a') && item.a === valueToRemove.a);
console.log(array);
( { b: 2 }, { c: 3 } )
حذف چندین اتفاق
اگر می خواهید تمام رخدادهای یک مقدار خاص را از یک آرایه حذف کنید، می توانید از آن استفاده کنید filter()
روش:
let array = (1, 2, 3, 2, 4, 2, 5);
let valueToRemove = 2;
array = array.filter(item => item !== valueToRemove);
console.log(array);
این خروجی خواهد داشت:
(1, 3, 4, 5)
این کد یک آرایه جدید ایجاد می کند که شامل همه موارد از آرایه اصلی به جز موارد برابر است valueToRemove
.
نتیجه
در این بایت، روشهای مختلفی را برای حذف آیتمها از آرایه بر اساس مقدار در جاوا اسکریپت بررسی کردهایم. ما روش استفاده از روش های جاوا اسکریپت داخلی را دیدیم filter()
و splice()
و همچنین روشی از کتابخانه Lodash. ما همچنین درباره روش مدیریت مقادیر غیر ابتدایی و چندین اتفاق بحث کردهایم. این روشها را میتوان ترکیب و تغییر داد تا متناسب با نیازهای خاص شما باشد و در هنگام کار با آرایهها در جاوا اسکریپت، انعطافپذیری بیشتری را فراهم کند.
(برچسبها برای ترجمه)# جاوا اسکریپت
منتشر شده در 1402-12-30 10:56:05