سلام.
خسته نباشید.
من می خواستم یک تابع تعریف کنم که به تعدادی که می خوام اجرا بشه.
هر بار بر اساس خروجی دفعه قبل یک خروجی متفاوت داره.من می خواستم تعداد اجرای تابع رو به عنوان ورودی دریافت کنم.یعنی به تعدادی که کاربر وارد می کنه تکرار بشه.
اگر راهی بلدید ممنون می شم بگید.
سلام !
خسته نباشید!
من سوال شما رو خوندم و چیزی رو که از حرف شما برداشت کردم تبدیل کردم به کد زیر!
// get a number from user by an input and define it in a variable
// for example, we define num = 6
const num = 6;
const namesList = ["ali", "ahmad", "ghasem", "javad", "mohammad", "morteza", "hesam"]
const logger = (x) => {
console.log(namesList[x])
}
let x = 0;
while (x < num) {
logger(x)
++x;
}
نتیجه اش هم میشه این که داخل کنسول هستش !
ali
ahmad
ghasem
javad
mohammad
morteza
واما توضیحش :
اون قسمت اول که دوتا کامنت هست... شما اینجا یک عددی رو از کاربر میگیرید و میریزید داخل متغیر! چجوری ؟ به وسیله یک input در قسمت HTML و یک document.queryselector یا document.getElementById و ... ! ( به اون متن انگلیسی هم خیلی گیر ندید زبانم ضعیفه دارم کار میکنم روش 😅😅😂😂 )
جاهای دیگه اشم که بنظرم مشخصه حالا اگه سوال داشتید حتما تگ کنید میام توضیح میدم!
در ضمن این راهیه که به ذهن من رسید قاعدتاً اگر کسی تجربه بیشتری داشته باشه شاید راههای آسونتری برسه به ذهنش!
امیدوارم که مشکلتون حل شده باشه!
سلام.
ممنون از پاسختون.
ولی منظور من چیز دیگه هست.
تابع زیر رو در نظر بگیرید.مقدار اول مقدار ورودی تابع هست و مقدار دوم تعداد تکرار تابع.من کدی رو می خوام که به تعداد ورودی دوم تابع رو اجرا کنه.
function App(input , setcount) {
return(input*2+3);
}
به عنوان مثال اگر به این تابع عدد 2 رو بدیم و این تابع دو بار اجرا بشه خروجی برابر میشه با 17
شما میتونی یه حلقه رو بزاری داخل همین تابع خودت مثلاً میتونی حتی به جای while که من گفتم از for استفاده کنی به این شکل :
function App(input , setcount) {
let sum = 0
for (let index = 0; index < setcount; index++) {
sum += input*2+3
}
return sum;
}
به همین راحتی!
به عنوان مثال اگر به این تابع عدد 2 رو بدیم و این تابع دو بار اجرا بشه خروجی برابر میشه با 17
اشتباه نکن این تابعی که شما تعریف کردی اگه داخلش 2 بزاری و 2 بار هم تکرار بشه میشه 14 نه 17 !
جوابتون رو چک کردید؟
این تابعی که شما نوشتید جواب ورودی 2 با 2 بار تکرار میشه 14 !!
ببینید من که جواب رو نمی دونم اون تابعی که نوشتم برای توضیح این بود که چی میخوام.
در سوال گفتم هربار باید براساس خروجی قبلی محاسبه بشه.یعنی خروجی قبلی میشه ورودی تابع در اجرای جدید.
ولی این تابعی که شما نوشتید هر بار براساس همون ورودی اولیه پیش میره.
ببین داداش احساسم اینه که داری اشتباه میزنی!
حرف تو دوحالت داره :
1) بعد از اینکه دفعه اول محاسبه اتفاق افتاد، مقدار قبلی ( که در مثال بالا که گفتم میشه 7 ) با مقدار جدید دوباره جمع بشه ( که قاعدتا مقدار محاسبه جدید هم دوباره میشه 7 ) و جواب میشه 14 !!
که این مورد رو در مثال بالا گفتم !
2) حالت دوم اینه که دفعه اول که محاسبه اتفاق می افته از مقداری که خودت گفتی و داخل input گرفتی استفاده بشه و در دفعات بعدی از مقدار محاسبه در دفعه قبل استفاده بشه که مثالش میشه مورد پایین !
function App(input , setcount) {
let sum = 0;
for (let index = 0; index < setcount; index++) {
if(index === 0) {
sum += input*2+3
console.log( "first Time = " + sum)
} else {
sum += sum*2+3
console.log( "other = " + sum)
}
}
return sum;
}
console.log(App(2, 2))
جوابتون رو چک کردید؟
این تابعی که شما نوشتید جواب ورودی 2 با 2 بار تکرار میشه 14 !!
بله جواب رو چک کردم و برای همین گفتم که 14 میشه جواب !
ببینید من که جواب رو نمی دونم اون تابعی که نوشتم برای توضیح این بود که چی میخوام!
بله منم الان دقیقاً منظورتون رو متوجه شدم ولی چون اونجا شما گفته بودید 17 خواستم بگم اینجا هیچوقت جواب 17 نمیشه !
ممنونم از این این که پاسخ میدید و می خواید مشکل رو حل کنید.
ولی چرا تابعتون رو یک بار امتحان نمی کنید؟؟؟
ببینید یک تابع می خوایم که:
app(2,2)
//خروجی 17
app(2,3)
//خروجی 37
و این که لزوما قرار نیست تابع با عدد سر و کار داشته باشه.من یه سینتکس و حالت کلی می خوام برای این دست موارد.مثلا ممکنه برای کد گذاری کلمات باشه که حروف رو در خود کلمه جابجا کنه و یا حروف رو بر اساس شمارشون در الفبا تغییر بده.
این مبحث مربوط به سوال مصاحبه بوده که سوالاتش رو کامل برای استفاده بقیه تا چند روز دیگه همینجا قرار میدم.
من واقعاً نمیدونم چی بگم!
شما اگر تابع من رو امتحان کرده باشید متوجه میشید که آخرین تابعی که ارسال کردم دقیقاً از مقادیر قبلی داره استفاده میکنه!!!
وتمام ویژگی هایی که شما میگید رو داره!
شما میاید میگید :
ببینید من که جواب رو نمی دونم اون تابعی که نوشتم برای توضیح این بود که چی میخوام.
بعد الان همش اصرار دارید که خروجی بشه 17 ؟؟؟؟؟؟
حالت کلی نوشتن بنظرم همینی هست که اینجاست حالا اگه شما میخاید جواب app(2,2) بشه 17 باید برید ببینید چه عملیاتی رو باید قرار بدید!! نه اینکه بگید :
ولی چرا تابعتون رو یک بار امتحان نمی کنید؟؟؟
یعنی شما فکر می کنید من همینطوری رو هوا یه چیزی مینویسم و میفرستم ؟؟؟ 😂😂😂
خب دیگه واقعاً حرفی نمیمونه!
این مبحث مربوط به سوال مصاحبه بوده که سوالاتش رو کامل برای استفاده بقیه تا چند روز دیگه همینجا قرار میدم.
حتما اینکار رو بکنید تا ببینیم
به هرحال ما هرچی بلد بودیم گفتیم!
چند نفر از دوستان رو تگ میکنم تا بتونند کمکتون کنند! ومنم یه چیز جدید یاد بگیرم!
@endworld
@erfanmohseni406
@milad
@mobinasattari7
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟