JavaScript Rest Parameters
JavaScript Rest Parameters
ఒక function కి ఎన్ని arguments వస్తాయో ముందుగా తెలియనప్పుడు Rest Parameters ఉపయోగిస్తాము. Rest Parameter అనేక arguments ను ఒకే array లో collect చేస్తుంది.
Rest Parameter ను … మూడు dots తో రాస్తాము. ఉదాహరణకు …numbers అంటే function కి వచ్చిన మిగిలిన arguments అన్నీ numbers అనే array లోకి వెళ్తాయి.
Syntax
function functionName(…parameterName) { }
Rest Parameter ఎప్పుడూ function parameters list లో చివర ఉండాలి. ఎందుకంటే దాని తర్వాత వచ్చే arguments అన్నీ అది collect చేస్తుంది.
Rest Parameter ఎలా పనిచేస్తుంది?
- Function కి arguments పంపుతాము.
- మొదటి regular parameters వాటి values ను స్వీకరిస్తాయి.
- మిగిలిన arguments Rest Parameter ద్వారా array గా collect అవుతాయి.
- ఆ array పై loop లేదా ఇతర array operations ఉపయోగించవచ్చు.
Rest Parameter మరియు Spread Syntax రెండింటికీ మూడు dots … ఉంటాయి. కానీ Rest Parameter function definition లో values ను collect చేస్తుంది. Spread Syntax ఒక array లేదా iterable లోని values ను విడిగా expand చేస్తుంది.
Simple Explanation
ఒక function కి వచ్చిన extra arguments అన్నింటినీ ఒక array గా తీసుకోవడానికి Rest Parameter ఉపయోగిస్తాము.
ఉదాహరణకు function add(…numbers) అని రాస్తే, add function కి పంపిన అన్ని numbers numbers అనే array లో store అవుతాయి. తరువాత వాటిని loop ద్వారా process చేయవచ్చు.
Rest Parameter ను సాధారణ parameter లాగా function call సమయంలో value ఇవ్వము. Function call కి వచ్చిన మిగిలిన arguments ఆటోమేటిక్గా ఆ array లోకి వస్తాయి.
Real-Life Example
ఒక shopping cart ను ఊహించండి. ఒక customer ఎన్ని products కొనుగోలు చేస్తాడో ముందుగా తెలియకపోవచ్చు. ప్రతి product price ను విడిగా parameter గా రాయడం కష్టం. Rest Parameter ఉపయోగిస్తే వచ్చిన అన్ని prices ను ఒక array గా తీసుకుని total bill లెక్కించవచ్చు.
అంటే calculateTotal(100, 50, 25) లో ఎన్ని prices పంపినా function వాటిని collect చేసి మొత్తం లెక్కించగలదు.
Code Examples
Basic Rest Parameter
function showItems(...items) {
console.log(items);
}
showItems("Book", "Pen", "Bag");
…items function కి వచ్చిన అన్ని arguments ను items అనే array లో collect చేస్తుంది. Function call లో మూడు values పంపినందువల్ల items array లో ఆ మూడు values ఉంటాయి.
[ 'Book', 'Pen', 'Bag' ]
Rest Parameter తో Total Calculate చేయడం
function calculateTotal(...prices) {
let total = 0;
for (const price of prices) {
total += price;
}
return total;
}
console.log(calculateTotal(100, 50, 25));
ఈ function ఎన్ని prices వచ్చినా వాటిని prices array లో collect చేస్తుంది. for…of loop ప్రతి price ను తీసుకుని total కు కలుపుతుంది.
175
Regular Parameter తో Rest Parameter
function printMessage(message, ...names) {
for (const name of names) {
console.log(message + ", " + name);
}
}
printMessage("Hello", "Ravi", "Sita", "Kiran");
ఇక్కడ message మొదటి argument ను స్వీకరిస్తుంది. మిగిలిన arguments అన్నీ names అనే Rest Parameter array లోకి వెళ్తాయి. Rest Parameter తప్పనిసరిగా చివరి parameter అయి ఉండాలి.
Hello, Ravi Hello, Sita Hello, Kiran
Line-by-Line Explanation
calculateTotal అనే function ను సృష్టిస్తున్నాము. …prices వల్ల function కి వచ్చే అన్ని arguments prices అనే array లో collect అవుతాయి.
మొత్తం విలువను store చేయడానికి total అనే variable ను 0 తో ప్రారంభిస్తున్నాము.
prices array లోని ప్రతి price ను ఒక్కొక్కటిగా తీసుకోవడానికి for…of loop ఉపయోగిస్తున్నాము.
ప్రతి price ను total కు కలుపుతున్నాము. ఇది total = total + price కు short form.
for…of loop block ఇక్కడ ముగుస్తుంది.
అన్ని prices కలిపిన తరువాత total విలువను function result గా return చేస్తున్నాము.
calculateTotal function ఇక్కడ ముగుస్తుంది.
Function ను మూడు arguments తో call చేస్తున్నాము. Rest Parameter వాటిని collect చేసి function 175 ను return చేస్తుంది. ఆ result console లో కనిపిస్తుంది.
Try It
Try this JavaScript code:
function calculateTotal(...prices) {
let total = 0;
for (const price of prices) {
// ప్రతి price ను total కు కలపండి
}
return total;
}
console.log(calculateTotal(120, 80, 50));
Practice
Practice:
findLargest అనే function ను complete చేయండి. ఈ function Rest Parameter ద్వారా ఎన్ని numbers అయినా స్వీకరించి, వాటిలో largest number ను return చేయాలి.
ఇచ్చిన input: findLargest(12, 45, 7, 32)
Hint:
మొదటి number ను initially largest గా తీసుకోండి. Loop లో ప్రతి number ను largest తో compare చేయడానికి > operator ఉపయోగించండి.
Common Mistakes
Rest Parameter ను function parameters list లో మధ్యలో రాయడం. ఉదాహరణకు function test(…values, lastValue).
Rest Parameter ఎప్పుడూ చివరి parameter అయి ఉండాలి. సరైన విధానం: function test(firstValue, …values).
Rest Parameter ఒక single value అని అనుకోవడం.
Rest Parameter ఎప్పుడూ array ను తయారు చేస్తుంది. అందువల్ల దానిపై loop, indexing మరియు array methods ఉపయోగించవచ్చు.
Rest Parameter మరియు Spread Syntax ఒకటే అని భావించడం.
Rest Parameter values ను collect చేస్తుంది. Spread Syntax values ను expand చేస్తుంది. రెండింటికీ మూడు dots ఉన్నా, వాటి usage context వేరు.
Rest Parameter కి default value అవసరం అని అనుకోవడం.
Arguments పంపకపోయినా Rest Parameter ఖాళీ array గా ఉంటుంది. అవసరమైతే function లో array length ను check చేయవచ్చు.
Interview Questions
Rest Parameter అంటే ఏమిటి?
Answer: Function కి పంపిన అనేక arguments ను ఒకే array లో collect చేయడానికి ఉపయోగించే parameter ను Rest Parameter అంటారు. దీన్ని మూడు dots తో రాస్తారు, ఉదాహరణకు …items.
Rest Parameter ను ఎక్కడ ఉంచాలి?
Answer: Rest Parameter function parameters list లో చివర ఉండాలి. ఎందుకంటే దాని తర్వాత వచ్చే arguments అన్నింటినీ అది collect చేస్తుంది.
Rest Parameter మరియు Spread Syntax మధ్య తేడా ఏమిటి?
Answer: Rest Parameter అనేక values ను ఒక array గా collect చేస్తుంది. Spread Syntax ఒక array లేదా iterable లోని values ను విడిగా expand చేస్తుంది.
Rest Parameter కి arguments పంపకపోతే ఏమవుతుంది?
Answer: Rest Parameter ఒక ఖాళీ array గా ఉంటుంది. కాబట్టి function crash కాకుండా ఆ empty array పై operations చేయవచ్చు.
Exam Questions
క్రింది function call లో values ను array గా collect చేయడానికి సరైన syntax ఏది? function total(____) { }
Answer:
సరైన సమాధానం: …prices. పూర్తి రూపం: function total(…prices) { }.
Rest Parameter ను function లో చివరి parameter గా మాత్రమే ఎందుకు ఉంచాలి?
Answer:
Rest Parameter తన తర్వాత వచ్చే అన్ని arguments ను collect చేస్తుంది. అది మధ్యలో ఉంటే తర్వాతి parameters కు arguments ను స్పష్టంగా కేటాయించడం సాధ్యం కాదు.
ఈ code output ఏమిటి? function count(…items) { return items.length; } console.log(count(“A”, “B”, “C”));
Answer:
Output: 3. ఎందుకంటే items array లో మూడు values collect అవుతాయి.
Quick Revision
- Rest Parameter అనేక arguments ను ఒక array గా collect చేస్తుంది.
- Rest Parameter ను మూడు dots … తో రాస్తారు.
- Rest Parameter function parameters list లో చివర ఉండాలి.
- Rest Parameter ద్వారా వచ్చిన values పై loop మరియు array operations ఉపయోగించవచ్చు.
- Arguments పంపకపోతే Rest Parameter ఖాళీ array గా ఉంటుంది.
- Rest Parameter values ను collect చేస్తుంది; Spread Syntax values ను expand చేస్తుంది.
