description

چند سوال در مورد جاوا اسکریپت

- 7 ماه پیش
توسط mohammad.b آپدیت شد
mohammad.b ( 560 تجربه )
7 ماه پیش

سلام دوستان یه کمک فوری نیاز دارم باید چند تا تمرین ساده جاوا اسکریپتی حل کنم ولی من هنوز الفبای جاوا اسکریپت رو هم کامل یاد نگرفتمه و توشون موندمه هر چی هم سایتا رو میگردم جوابی براشون پیدا نکردمه
اولین سوال اینه
برنامهای بنویسید که آرایه زیر را برحسب تعداد حروف هر عضو، از کوچک به بزرگ مرتب نموده و چاپ نماید. مثلا
arr = [“Ali”,”Hosein”,”ab”,”ab”,”Reza”,”Abolfazl”,”saleh”];
را به عنوان ورودی بگیرد و
newArr = [“ab”,”ab”,”ali”, …];
را به عنوان خروجی چاپ کند
به این صورت که اول طول هر رشته عضو ارایه رو حساب کنه و بعد از کوچیک به بزگ بر اساس طول رشته ارایه رو چاپ کنه
تو کنسول هم چاپ کنه کافیه چون تمرینه زیاد مهم نیست
اگه کسی بلده کمک کنه تا سوالات بعدی رو هم بپرسم
با تشکر

بهترین پاسخ انتخاب شده توسط mohammad.b
مهدی
7 ماه پیش

کدایی که مینویسی رو داخل ``` بنویسی که اینجوری نباشن
به نظر من از این منبع واسه خوندن جاوااسکریپت استفاده کن :
لینک
جواب اولی:

array = ["Ali","Hosein","ab","ab","Reza","Abolfazl","saleh"];
array.sort((a,b)=>a.length-b.length); //["ab", "ab", "Ali", "Reza", "saleh", "Hosein", "Abolfazl"]

جواب دومیم توسط regex (البته میشه اول تبدیلش کرد به آرایه و بعد اول هر حرف اول هر عضو آرایه رو بزرگ کرد و دوباره تبدیل به رشته و ... ولی خوب regex خیلی بهتره)

string = "hello world";
string.replace(/(^|\s)\S/g, e => e.toUpperCase());

^ اول رشته رو مچ میکنه
| این علامت یا
\s همه whitespace ها رو مچ میکنه
\S همه حروف و علامات به غیر از whitespace رو مچ میکنه

سوال سه هم که کامل ترین حل رو واست نوشتم حالات اینکه نه حروف تکراری باشن نه اینکه خط فاصله ها یا کاراکتر رو انتخاب کنه

let str = "qqq...";
let i = 0, nums = [] , len = str.length;
while(i < 3){
    num = Math.floor(Math.random() * (len));
    if( new RegExp("[a-z]").test(str.charAt(num))  &&  (nums.indexOf(num) === -1)){
        re = new RegExp(`(?<=^.{${num}})\\S`,'g');
        str = str.replace(re, e => e.toUpperCase());
        nums.push(num);
        i++;
    }
}
console.log(str)

خدایش تا اینجا خیلی وقتم پرید حس نوشتن دیگه بقیه نیست (سوالات یه کم سرچ و فشار بیاری حل میشن)
خواستی بیا تگلرام
تلگرام

mohammad.b ( 560 تجربه )
7 ماه پیش

برنامه ای بنویسید که ابتدا تعداد سطرها، سپس تعداد ستونها را دریافت کند و جدولی با
همان تعداد سطرها و ستونهای وارد شده نمایش دهد

مهدی ( 7689 تجربه )
7 ماه پیش

کدایی که مینویسی رو داخل ``` بنویسی که اینجوری نباشن
به نظر من از این منبع واسه خوندن جاوااسکریپت استفاده کن :
لینک
جواب اولی:

array = ["Ali","Hosein","ab","ab","Reza","Abolfazl","saleh"];
array.sort((a,b)=>a.length-b.length); //["ab", "ab", "Ali", "Reza", "saleh", "Hosein", "Abolfazl"]

جواب دومیم توسط regex (البته میشه اول تبدیلش کرد به آرایه و بعد اول هر حرف اول هر عضو آرایه رو بزرگ کرد و دوباره تبدیل به رشته و ... ولی خوب regex خیلی بهتره)

string = "hello world";
string.replace(/(^|\s)\S/g, e => e.toUpperCase());

^ اول رشته رو مچ میکنه
| این علامت یا
\s همه whitespace ها رو مچ میکنه
\S همه حروف و علامات به غیر از whitespace رو مچ میکنه

سوال سه هم که کامل ترین حل رو واست نوشتم حالات اینکه نه حروف تکراری باشن نه اینکه خط فاصله ها یا کاراکتر رو انتخاب کنه

let str = "qqq...";
let i = 0, nums = [] , len = str.length;
while(i < 3){
    num = Math.floor(Math.random() * (len));
    if( new RegExp("[a-z]").test(str.charAt(num))  &&  (nums.indexOf(num) === -1)){
        re = new RegExp(`(?<=^.{${num}})\\S`,'g');
        str = str.replace(re, e => e.toUpperCase());
        nums.push(num);
        i++;
    }
}
console.log(str)

خدایش تا اینجا خیلی وقتم پرید حس نوشتن دیگه بقیه نیست (سوالات یه کم سرچ و فشار بیاری حل میشن)
خواستی بیا تگلرام
تلگرام

برای ارسال پاسخ باید وارد سایت شوید