rabco
5 سال پیش توسط rabco مطرح شد
15 پاسخ

اضافه شدن undefined به url در جاوا اسکریپت

دوستان سلام
من ی ارایه دارم توی جاوا اسکریپت که قراره یک سری پارامتر هردفعه روی یک دکمه کلیک شد ازش حذف شه و به یه صفحه ریدایرکت بشه اما زمانی که ریدایرکت میشه undefined به ته url میچسپه چکاری میتونم انجام بدم برای حذف این مقدار ؟
کدی که برای هدایت شدن نوشتم

let sku =['RAB-6622382420','RAB-1497747660','RAB-1497747660'];
 let target ='';
                if (sku.length === 3){
                    target = `/compare/${sku[0]}/${sku[1]}/${sku[2]}`
                }else if(sku.length === 2){
                    target = `/compare/${sku[0]}/${sku[1]}`
                }else if(sku.length === 1){
                    target = `/compare/${sku[0]}`
                }else if (sku.length === 0){
                    target = `/`
                }
                window.location = target;

url :

http://rabcoshop.test/compare/RAB-6622382420/RAB-1497747660/undefined

ثبت پرسش جدید
میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش آپدیت شد
0

مشکل تون اینه که شما اومدید و از تابع delete برای حذف عناصر آرایه استفاده کردید.
این تابع باعث بوجود آوردن حفره هایی در آرایه شما میشه و مقدار undefined رو درونش قرار میده.

از تابع splice استفاده کن. مثال:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 1);        // Removes the third element (Apple) of fruits

میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
0

کد شما درسته، مشکلش چیه؟
کدی که نوشتی درست کار میکنه و هر سه مورد رو بوجود میاره:

https://roocket.ir/compare/RAB-6622382420/RAB-1497747660/RAB-1497747660

rabco
تخصص : Full Stack developer
@rabco 5 سال پیش مطرح شد
0

ته url رو نگاه کنید بعد از رفرش undefined اضافه شده زمانی که یکی از عنصر های ارایه حذف میشه این undefined نباید باشه


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 5 سال پیش مطرح شد
0

یه کاری کنید به جای اون عدد ایندکس از length استفاده کنید ببینید چه فرقی میکنه نتیجه

target = `/compare/${sku[sku.length - 1]}/${sku[sku.length - 2]}/${sku[sku.length - 3]}`

ببینید نتیجه فرق کرد، یا اینکه توی کنسول خطایی دارید


rabco
تخصص : Full Stack developer
@rabco 5 سال پیش مطرح شد
0

ممنونم خطایی توی کنسول ندارم نتیجه هم همونه هیچ راهی نداره که مقداری رو از url پاک کرد با js


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
0

کدی که نوشتید درسته، متوجه منظورتون نمیشم.
منظورتون اینه که آرایه تون چطور تغییر میکنه؟ این رو متوجه نمیشم که قراره ارایه چطوری تغییر کنه و کد بصورت پویا باشه.
الان آرایه سه تا عنصر داره و به درستی این سه تا به url اضافه میشن.


rabco
تخصص : Full Stack developer
@rabco 5 سال پیش آپدیت شد
1

بعد از اینکه صفحه رفرش میشه از url یکی از عنصر ها به فرض RAB-1497747660 این مقدار حذف میشه اما بجای اینکه کلا از url حذف شه بجاش undefined قرار میگیره

https://roocket.ir/compare/RAB-6622382420/RAB-1497747661/RAB-1497747660

این url باید تبدیل به

https://roocket.ir/compare/RAB-6622382420/RAB-1497747661

بشه اما اینجوری میشه


https://roocket.ir/compare/RAB-6622382420/RAB-1497747661/undefined

میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
0

کد دکمه ها رو هم قرار بده، کدهای بخش حذف کردن رو قرار بده، اون رو هم ببینیم خوبه.
چون الان پیدا نیست که فرآیند کاریتون برای حذف به چه صورت هستش.


rabco
تخصص : Full Stack developer
@rabco 5 سال پیش آپدیت شد
0

چیز خاصی نداره دیگه دکمه فقط ی رویداد onclicck رو داره

                  <i class="icofont-close" id="closeCompare" @Click="removeProductBySku ()"></i>

removeProductBySku : function (product,sku) {
                sku.map(function (value,index) {
                    if(value === product){
                        delete sku[index];
                    }
                });
                this.sku= [];

                let target ='';
                if (sku.length === 3){
                    target = `/compare/${sku[0]}/${sku[1]}/${sku[2]}`
                }else if(sku.length === 2){
                    target = `/compare/${sku[0]}/${sku[1]}`
                }else if(sku.length === 1){
                    target = `/compare/${sku[0]}`
                }else{
                    target = `/`
                }
                this.sku = sku;
                window.location = target;

            }

میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش آپدیت شد
0

مشکل تون اینه که شما اومدید و از تابع delete برای حذف عناصر آرایه استفاده کردید.
این تابع باعث بوجود آوردن حفره هایی در آرایه شما میشه و مقدار undefined رو درونش قرار میده.

از تابع splice استفاده کن. مثال:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 1);        // Removes the third element (Apple) of fruits

rabco
تخصص : Full Stack developer
@rabco 5 سال پیش مطرح شد
0

ممنونم از چه جایگزینی استفاده کنم ؟


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
0

از تابع splice استفاده کن. مثال:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 1);        // Removes the third element (Apple) of fruits

rabco
تخصص : Full Stack developer
@rabco 5 سال پیش مطرح شد
0

ممنونم حل شد


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
0

زنده باشید، چه خوب

چون کدهای بخش حذف عنصر رو در ابتدا قرار نداده بودید، مسئله دارای ابهام بودش. وقتی قرار دادید، مشخص شدش که اشکال کار چیه 👌


rabco
تخصص : Full Stack developer
@rabco 5 سال پیش مطرح شد
1

بابت راهنمایی عالیتون ممنون 🙏


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
0

خواهش میکنم، سر زنده باشید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام