سلام بچه ها من چند دکمه دارم. که هر دکمه یک ایدی مخصوص مثلا (u123123, r123123 , e123123 , v123123)به خودش رو داره که این ایدی ها یک کلمه بهشون اضافه شده و در اصل سرچمشه ش از یک ایدی اصلی که (123123) است. هستش.
میخام وختی روی چند دکمه تصادفی کلیک میکنم. و بیاد اونایی که ریشه ایدی هاشون شبیه هم باشه بهم بگه که ریشه اینا شبیه به همه. نمیخام از php استفاده کنم و میخام از جی کویری یا جاوااسکریپت استفاده کنم. آیا کسی راه حلی سراغ داره که مثلا اگه من چند تا دکمه رو زدم و دوتا ازشون یک ایدی منشا مشابه داشتن خبر بده; در واقع نمیخام درخواستی سمت سرور بره و همونجا اعتبارسنجی بشه
مثلا آلرت بده که تداخل داره دوتاشون. و وقتی اون دو دکمه ای که تداخل داره رو یکشون رو ورداشتم دیگه الرت نده.
از splice استفاده کنید
array.splice(index, 1);
اول Index المان مورد نظر رو پیدا کنید بعد حذفش کنید. فقط هنگامی که مقادیر تکراری دارید، دقت کنید که Index گزینه درست رو دربیارید
برای این کار میتونید در ابتدا هنگام اضافه کردن به آرایه در متد myFunction ایندکس رو هم وارد کنید. طول کل آرایه رو که دارید + ۱ کنید. ایندکسی که باید اضافه بشه شمارش در میاد
و همون ایندکس رو به myFunction2 هم پاس بدید. این جوری همیشه مقدار تکراری با index ای که شما بهش دادی، حذف میشه.
array.length + 1
سلام
متن تون خطای نوشتاری زیاد داره، حتی عنوان سوال تون هم ایراد داره. درست متوجه نشدم دنبال چی هستید و مقصودتون چیه.
متن تون رو تونستید اصلاح کنید و با مثال بفرمایید خروجی مدنظرتون چی هستش.
@milad
@ali.bayat
@hesammousavi
بذارید یه جور دیگه بیان کنم. مثلا در کد زیر میخام وقتی روی دکمه 1 زده شده 18 رو اضافه کنه به آرایه ها و وقتی روی دکمه شماره 2 زده شد فقط اون عدد 18 رو حذف کنه و بقیه رو حذف نکنه همین.
<!DOCTYPE html>
<html>
<body>
<p>Click the button to add a new element to the array.</p>
<button name="number1" onclick="myFunction()">Try it</button>
<button name="number2" onclick="myFunction2()">Try it</button>
<p id="demo"></p>
<script>
var fruits = [23, 41, 12, 15, 34,10];
document.getElementById("demo").innerHTML = fruits;
function myFunction() {
fruits.push("18");
document.getElementById("demo").innerHTML = fruits;
}
function myFunction2() {
fruits.pop("18");
document.getElementById("demo").innerHTML = fruits;
}
</script>
</body>
</html>
درود.
برای حذف از تابع زیر استفاده کنید:
function arrayRemove(arr, value) {
return arr.filter(function(ele){
return ele != value;
});
}
var arr = [1, 2, 3, 4, 5];
var data = arrayRemove(arr, 3);
console.log(data);
// [1, 2, 4, 5]
مقاله زیر راههای متفاوت حذف المانهای آرایه رو توضیح داده.
https://love2dev.com/blog/javascript-remove-from-array/
موفق باشید
@ali.bayat
درود بر شما دوست عزیز،
بنده میخوام مثلا اگه توی آرایه دو تا چند تا 18 وجود داره با کلیک بر روی دکمه شماره 2 فقط یکی از (18)ها رو حذف کنه در واقع تابع ارسالی شما بزرگوار فیلتر میکنه و اگه دو تا 18 وجود داشته باشه هر دو رو حذف میکنه..
و متشکرم بابت لینک ارسالی شما، احتمالا تو مقاله بتونم یه چزی ازش دربیام. سپاسگذارم
از splice استفاده کنید
array.splice(index, 1);
اول Index المان مورد نظر رو پیدا کنید بعد حذفش کنید. فقط هنگامی که مقادیر تکراری دارید، دقت کنید که Index گزینه درست رو دربیارید
برای این کار میتونید در ابتدا هنگام اضافه کردن به آرایه در متد myFunction ایندکس رو هم وارد کنید. طول کل آرایه رو که دارید + ۱ کنید. ایندکسی که باید اضافه بشه شمارش در میاد
و همون ایندکس رو به myFunction2 هم پاس بدید. این جوری همیشه مقدار تکراری با index ای که شما بهش دادی، حذف میشه.
array.length + 1
@ali.bayat
@hesammousavi
ولی مشکل اینجاست باید آرایه باشه. و در جایی دیگه تطبیق داده میشن. داستان اینجوریه مثلا:
هر کالا یک ایدی داره و هر کالا 10 تا آپشن داره .(خود این اپشن ها از ایدی کالاشون استفاده کردن که وقتی برای کالا (id = eee) هستش برای اپشن هاش هم ایدی زدم که آپشن اولیش (id = 23eee) هستش و فلان آپشن (id = 34eee) هستش یعنی اون ایدی اصلی کالا هم روی هر کدام از آپشن ها وجود داره)
و قانونش اینه (هر کاربر فقط میتونه از هر کالا یک آپشن رو انتخاب کنه، و همچنین مثلا میتونه (کالا 1 با آپشن فلان رو با کالا 2 با آپشن فلان) باهم ثبت کنه. ولی نباااید بتونه (کالا 1 با آپشن یک + کالا 1 با آپشن دو) رو ثبت کنه و آلرت بده بهش که باید بری یکی از آپشن هارو ورداری که تداخل نداشته باشه. مثلا تداخل درس ها توی دانشگاس با این تفاوت نمیخام در سرور چک شه و پاسخ دریافت کنه.
برای یک کالا به تعداد آپشن هاش button قرار دادم که کاربر قابلیت کلیک کردن روی اونا رو داره
خب من اومدم برا هر کلیکی که انجام میشه ایدیشو دریافت کردم. بر فرض کاربر بر روی |کالا 1 با آپشن اول و دوم| کلیک کرده و ایدیهاشون رو که (34eee و 21eee) بود اعدادشو حذف کردم و مقدار باقی مانده که (eee) هستش به تعدادشون که دوتا هستش توی آرایه قرار دادم. و میخام وقتی رفت و زد روی آپشن اول یکی از eee ها که مربوط به زمان ثبت خودشه ورداشته بشه و دوباره بیاد گزینه ثبت رو بزنه و گزینه ثبت دوباره چک میکنه اگه ورداشته شده براش ثبت کنه
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
هنوز که هنوزه تلاش هام نتیجه نداده، اگه اینو با php میزدم خیلی راحت بود ولی میخام ارسال نشه به سرور و با جاوا اسکریپت یا کتابخانه جی کوئری انجام بشه
متشکرم از پاسختون در رابطه با index ها من این پاسخ رو ندیدم میرم امتحانش میکنم ببین چجوریاس. سپاسگذارم قربان
خیلی ممنون و سپاسگذارم عااااالی بود اینجور فقط اون عددی که اضافه شده حذف میشه واقعا سپاس فراوان
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟