بهترین روش برای بروز رسانی یک آرایه تو در تو

2 هفته پیش توسط محسن مهری آپدیت شد
آفلاین
user-avatar
سجاد حقانی فر ( 7826 تجربه )
2 هفته پیش
تخصص : برنامه نویس

لینک کوتاه اشتراک گذاری

1

درود
من یک آرایه تودرتو مانند مثال زیر دارم . بهترین راه برای بروز رسانی answer با ID شماره 2 در مقیاس بزرگ چی می تونه باشه؟
ممنون از راهنماییتون

map()? forEach()? find()? indexOf()?
[
    {
        "id": 1,
        "question": "this is the question",
        "tagify": "#yes",
        "answers": [
            {
                "id": 1,
                "quizID": 1,
                "answer": "the new answer",
                "correctAnswer": 0
            },
            {
                "id": 2,
                "quizID": 1,
                "answer": "the new answer 2",
                "correctAnswer": 1
            },
            {
                "id": 3,
                "quizID": 1,
                "answer": "The third answer",
                "correctAnswer": 0
            },
            {
                "id": 4,
                "quizID": 1,
                "answer": "it's a Gadget that facilitate communication",
                "correctAnswer": 1
            }
        ]
    },
    {
        "id": 2,
        "question": "this is the second question",
        "tagify": "#Second",
        "answers": [
            {
                "id": 5,
                "quizID": 2,
                "answer": "and it also is right answer",
                "correctAnswer": 0
            },
            {
                "id": 6,
                "quizID": 2,
                "answer": "this is the wrong answer",
                "correctAnswer": 1
            },
            {
                "id": 7,
                "quizID": 2,
                "answer": "this is the right answer",
                "correctAnswer": 0
            },
            {
                "id": 245,
                "quizID": 2,
                "answer": "The first Answer3",
                "correctAnswer": 1
            },
            {
                "id": 5176,
                "quizID": 2,
                "answer": "that's the new one",
                "correctAnswer": 0
            }
        ]
    }
]
بهترین پاسخ
آفلاین
user-avatar
میلاد-م
2 هفته پیش
        const array1 = [
                        {
                            "id": 1,
                            "question": "this is the question",
                            "tagify": "#yes",
                            "answers": [
                                {
                                    "id": 1,
                                    "quizID": 1,
                                    "answer": "the new answer",
                                    "correctAnswer": 0
                                },
                                {
                                    "id": 2,
                                    "quizID": 1,
                                    "answer": "the new answer 2",
                                    "correctAnswer": 1
                                },
                                {
                                    "id": 3,
                                    "quizID": 1,
                                    "answer": "The third answer",
                                    "correctAnswer": 0
                                },
                                {
                                    "id": 4,
                                    "quizID": 1,
                                    "answer": "it's a Gadget that facilitate communication",
                                    "correctAnswer": 1
                                }
                            ]
                        },
                        {
                            "id": 2,
                            "question": "this is the second question",
                            "tagify": "#Second",
                            "answers": [
                                {
                                    "id": 5,
                                    "quizID": 2,
                                    "answer": "and it also is right answer",
                                    "correctAnswer": 0
                                },
                                {
                                    "id": 6,
                                    "quizID": 2,
                                    "answer": "this is the wrong answer",
                                    "correctAnswer": 1
                                },
                                {
                                    "id": 7,
                                    "quizID": 2,
                                    "answer": "this is the right answer",
                                    "correctAnswer": 0
                                },
                                {
                                    "id": 245,
                                    "quizID": 2,
                                    "answer": "The first Answer3",
                                    "correctAnswer": 1
                                },
                                {
                                    "id": 5176,
                                    "quizID": 2,
                                    "answer": "that's the new one",
                                    "correctAnswer": 0
                                }
                            ]
                        }
                    ];

                    function updateQuestion(arr, questionID, answerID, answerString) {
                        const foundQuestionIndex = arr.findIndex(element => element.id === questionID);
                        const arrAnswers = arr[foundQuestionIndex].answers;
                        const foundAnswerIndex = arrAnswers.findIndex(element => element.id === answerID);

                        arr[foundQuestionIndex]["answers"][foundAnswerIndex]["answer"] = answerString;
                    }

                    updateQuestion(array1, 2, 245, "new answer");
                    console.log(array1);
آفلاین
user-avatar
رضا پارسیان ( 35566 تجربه )
2 هفته پیش
تخصص : توسعه دهنده C# , Php

لینک کوتاه اشتراک گذاری

0

سلام وقتتون بخیر!

با هیچ کدوم از اینها نمیشه
باید تابع بازگشتی درست کنی

آفلاین
user-avatar
میلاد-م ( 251985 تجربه )
2 هفته پیش
تخصص : طراح رابط کاربری - Front-End

لینک کوتاه اشتراک گذاری

1

مقادیر داخل آرایه تون مرتب هستش؟
یعنی مثلا 1 تا 50، شامل سوالات 1 تا 50 میشه؟ همه موجود هستند و به ترتیب هستند؟ یا اینکه برخی مقادیر ممکنه موجود نباشند؟

آفلاین
user-avatar
سجاد حقانی فر ( 7826 تجربه )
2 هفته پیش
تخصص : برنامه نویس

لینک کوتاه اشتراک گذاری

0

برخی مقادیر ممکنه موجود نباشه، یعنی توسط کاربر پاک شه.
یه سوال بنیادی هم بپرسم، اینکه اصولا اینطور واکشی از سرور استاندارد هستش؟ یا باید جدا از هم این جداول Question و Answer رو واکشی کنم؟
متشکرم
@milad

آفلاین
user-avatar
میلاد-م ( 251985 تجربه )
2 هفته پیش
تخصص : طراح رابط کاربری - Front-End

لینک کوتاه اشتراک گذاری

1
const array1 = [
    {
        "id": 1,
        "question": "this is the question",
        "tagify": "#yes",
        "answers": [
            {
                "id": 1,
                "quizID": 1,
                "answer": "the new answer",
                "correctAnswer": 0
            },
            {
                "id": 2,
                "quizID": 1,
                "answer": "the new answer 2",
                "correctAnswer": 1
            },
            {
                "id": 3,
                "quizID": 1,
                "answer": "The third answer",
                "correctAnswer": 0
            },
            {
                "id": 4,
                "quizID": 1,
                "answer": "it's a Gadget that facilitate communication",
                "correctAnswer": 1
            }
        ]
    },
    {
        "id": 2,
        "question": "this is the second question",
        "tagify": "#Second",
        "answers": [
            {
                "id": 5,
                "quizID": 2,
                "answer": "and it also is right answer",
                "correctAnswer": 0
            },
            {
                "id": 6,
                "quizID": 2,
                "answer": "this is the wrong answer",
                "correctAnswer": 1
            },
            {
                "id": 7,
                "quizID": 2,
                "answer": "this is the right answer",
                "correctAnswer": 0
            },
            {
                "id": 245,
                "quizID": 2,
                "answer": "The first Answer3",
                "correctAnswer": 1
            },
            {
                "id": 5176,
                "quizID": 2,
                "answer": "that's the new one",
                "correctAnswer": 0
            }
        ]
    }
];

const foundIndex = array1.findIndex(element => element.id === 2);
array1[foundIndex].question = "new Question";

console.log(array1);
آفلاین
user-avatar
سجاد حقانی فر ( 7826 تجربه )
2 هفته پیش
تخصص : برنامه نویس

لینک کوتاه اشتراک گذاری

1

متشکرم
فقط اینکه من می خوام یکی از answer های مربوط به یکی از Question هارو آپدیت کنم.
در واقع هم آی دی Question و هم آی دی Answer رو هم دارم.
آی دی Answer ها هم یونیک هستند.
@milad

آفلاین
user-avatar
میلاد-م ( 251985 تجربه )
2 هفته پیش
تخصص : طراح رابط کاربری - Front-End

لینک کوتاه اشتراک گذاری

1
        const array1 = [
                        {
                            "id": 1,
                            "question": "this is the question",
                            "tagify": "#yes",
                            "answers": [
                                {
                                    "id": 1,
                                    "quizID": 1,
                                    "answer": "the new answer",
                                    "correctAnswer": 0
                                },
                                {
                                    "id": 2,
                                    "quizID": 1,
                                    "answer": "the new answer 2",
                                    "correctAnswer": 1
                                },
                                {
                                    "id": 3,
                                    "quizID": 1,
                                    "answer": "The third answer",
                                    "correctAnswer": 0
                                },
                                {
                                    "id": 4,
                                    "quizID": 1,
                                    "answer": "it's a Gadget that facilitate communication",
                                    "correctAnswer": 1
                                }
                            ]
                        },
                        {
                            "id": 2,
                            "question": "this is the second question",
                            "tagify": "#Second",
                            "answers": [
                                {
                                    "id": 5,
                                    "quizID": 2,
                                    "answer": "and it also is right answer",
                                    "correctAnswer": 0
                                },
                                {
                                    "id": 6,
                                    "quizID": 2,
                                    "answer": "this is the wrong answer",
                                    "correctAnswer": 1
                                },
                                {
                                    "id": 7,
                                    "quizID": 2,
                                    "answer": "this is the right answer",
                                    "correctAnswer": 0
                                },
                                {
                                    "id": 245,
                                    "quizID": 2,
                                    "answer": "The first Answer3",
                                    "correctAnswer": 1
                                },
                                {
                                    "id": 5176,
                                    "quizID": 2,
                                    "answer": "that's the new one",
                                    "correctAnswer": 0
                                }
                            ]
                        }
                    ];

                    function updateQuestion(arr, questionID, answerID, answerString) {
                        const foundQuestionIndex = arr.findIndex(element => element.id === questionID);
                        const arrAnswers = arr[foundQuestionIndex].answers;
                        const foundAnswerIndex = arrAnswers.findIndex(element => element.id === answerID);

                        arr[foundQuestionIndex]["answers"][foundAnswerIndex]["answer"] = answerString;
                    }

                    updateQuestion(array1, 2, 245, "new answer");
                    console.log(array1);
آفلاین
user-avatar
میلاد-م ( 251985 تجربه )
2 هفته پیش
تخصص : طراح رابط کاربری - Front-End

لینک کوتاه اشتراک گذاری

0

این کد باید درست کار کنه،
جزئیات بیشترش با خودتون.

آفلاین
user-avatar
محسن مهری ( 52006 تجربه )
2 هفته پیش
تخصص : برنامه نویس back-end با زبان php framework laravel

لینک کوتاه اشتراک گذاری

0

درود و خسته نباشید، زیاد ریز سوالت نشدم ولی عنوان رو دیدم جوابی که تو ذهنم هست رو میگم شاید برات کاربردی باشه، شرکت ما از یک کتابخونه برای لود منوهای تودرتوش استفاده میکنه به نام fancytree که با jquery اجرا میشه همچنین یک حالت داره که زیرمنو رو وقتی بازکردی تازه میره اطلاعات رو با یک درخواست ajax میگیره و زیرمنوها رو تولید میکننه
همچنین پشتیبانی خوبی داره داکیومنتش که نه، ولی مثال برای انواعش زیاد پیدا میشه، استفاده ازش راحته

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.