جواد
2 سال پیش توسط جواد مطرح شد
7 پاسخ

تکرار تابع

سلام.
خسته نباشید.
من می خواستم یک تابع تعریف کنم که به تعدادی که می خوام اجرا بشه.
هر بار بر اساس خروجی دفعه قبل یک خروجی متفاوت داره.من می خواستم تعداد اجرای تابع رو به عنوان ورودی دریافت کنم.یعنی به تعدادی که کاربر وارد می کنه تکرار بشه.
اگر راهی بلدید ممنون می شم بگید.


ثبت پرسش جدید
محمد زورمند
تخصص : react developer
@SpyStar0003 2 سال پیش آپدیت شد
0

سلام !
خسته نباشید!

من سوال شما رو خوندم و چیزی رو که از حرف شما برداشت کردم تبدیل کردم به کد زیر!

// 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 و ... ! ( به اون متن انگلیسی هم خیلی گیر ندید زبانم ضعیفه دارم کار میکنم روش 😅😅😂😂 )

جاهای دیگه اشم که بنظرم مشخصه حالا اگه سوال داشتید حتما تگ کنید میام توضیح میدم!
در ضمن این راهیه که به ذهن من رسید قاعدتاً اگر کسی تجربه بیشتری داشته باشه شاید راههای آسونتری برسه به ذهنش!

امیدوارم که مشکلتون حل شده باشه!


جواد
@sherlockkh221 2 سال پیش مطرح شد
0

سلام.
ممنون از پاسختون.
ولی منظور من چیز دیگه هست.
تابع زیر رو در نظر بگیرید.مقدار اول مقدار ورودی تابع هست و مقدار دوم تعداد تکرار تابع.من کدی رو می خوام که به تعداد ورودی دوم تابع رو اجرا کنه.

        function App(input , setcount) {
            return(input*2+3);
        }

به عنوان مثال اگر به این تابع عدد 2 رو بدیم و این تابع دو بار اجرا بشه خروجی برابر میشه با 17


محمد زورمند
تخصص : react developer
@SpyStar0003 2 سال پیش مطرح شد
0

شما میتونی یه حلقه رو بزاری داخل همین تابع خودت مثلاً میتونی حتی به جای 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 !


جواد
@sherlockkh221 2 سال پیش مطرح شد
0

جوابتون رو چک کردید؟
این تابعی که شما نوشتید جواب ورودی 2 با 2 بار تکرار میشه 14 !!
ببینید من که جواب رو نمی دونم اون تابعی که نوشتم برای توضیح این بود که چی میخوام.
در سوال گفتم هربار باید براساس خروجی قبلی محاسبه بشه.یعنی خروجی قبلی میشه ورودی تابع در اجرای جدید.
ولی این تابعی که شما نوشتید هر بار براساس همون ورودی اولیه پیش میره.


محمد زورمند
تخصص : react developer
@SpyStar0003 2 سال پیش مطرح شد
0

ببین داداش احساسم اینه که داری اشتباه میزنی!

حرف تو دوحالت داره :
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 نمیشه !


جواد
@sherlockkh221 2 سال پیش مطرح شد
0

ممنونم از این این که پاسخ میدید و می خواید مشکل رو حل کنید.
ولی چرا تابعتون رو یک بار امتحان نمی کنید؟؟؟
ببینید یک تابع می خوایم که:

  1. تعداد اجرا شدن رو بتونیم بهش بدیم.
  2. ورودی هر بار اجرا(به غیر از دفعه اول که ما بهش میدیم) برابر باشه با خروجی تابع در اجرای قبلی
    مثلا میگیم ورودی اول ضرب در 2 و بعد با 3 جمع بشه.این تابع.
    اگر ووردی اول رو مقدار در نظر بگیریم و ورودی دوم تعداد تکرار ، در این صورت خروجی ها میشه به شکل زیر:
    app(2,2)
    //خروجی 17
    app(2,3)
    //خروجی 37

    و این که لزوما قرار نیست تابع با عدد سر و کار داشته باشه.من یه سینتکس و حالت کلی می خوام برای این دست موارد.مثلا ممکنه برای کد گذاری کلمات باشه که حروف رو در خود کلمه جابجا کنه و یا حروف رو بر اساس شمارشون در الفبا تغییر بده.
    این مبحث مربوط به سوال مصاحبه بوده که سوالاتش رو کامل برای استفاده بقیه تا چند روز دیگه همینجا قرار میدم.


محمد زورمند
تخصص : react developer
@SpyStar0003 2 سال پیش مطرح شد
0

من واقعاً نمیدونم چی بگم!

شما اگر تابع من رو امتحان کرده باشید متوجه میشید که آخرین تابعی که ارسال کردم دقیقاً از مقادیر قبلی داره استفاده میکنه!!!
وتمام ویژگی هایی که شما میگید رو داره!

شما میاید میگید :

ببینید من که جواب رو نمی دونم اون تابعی که نوشتم برای توضیح این بود که چی میخوام.

بعد الان همش اصرار دارید که خروجی بشه 17 ؟؟؟؟؟؟
حالت کلی نوشتن بنظرم همینی هست که اینجاست حالا اگه شما میخاید جواب app(2,2) بشه 17 باید برید ببینید چه عملیاتی رو باید قرار بدید!! نه اینکه بگید :

ولی چرا تابعتون رو یک بار امتحان نمی کنید؟؟؟

یعنی شما فکر می کنید من همینطوری رو هوا یه چیزی مینویسم و میفرستم ؟؟؟ 😂😂😂
خب دیگه واقعاً حرفی نمیمونه!

این مبحث مربوط به سوال مصاحبه بوده که سوالاتش رو کامل برای استفاده بقیه تا چند روز دیگه همینجا قرار میدم.

حتما اینکار رو بکنید تا ببینیم

به هرحال ما هرچی بلد بودیم گفتیم!

چند نفر از دوستان رو تگ میکنم تا بتونند کمکتون کنند! ومنم یه چیز جدید یاد بگیرم!
@endworld
@erfanmohseni406
@milad
@mobinasattari7


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

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