फंक्शन डिक्लेरेशन और फंक्शन एक्सप्रेशन के अलावा JavaScript में फंक्शन बनाने का एक और बहुत संक्षिप्त तरीका भी होता है। ऐसे फंक्शन को एरो फंक्शन कहते हैं।
यहाँ एक फंक्शन डिक्लेरेशन और एक एरो फंक्शन की तुलना दी गई है।
function addUpTwoNumbers(num1, num2) {
return num1 + num2;
}
// function keyword removed and => added
const addUpTwoNumbers = (num1, num2) => {
return num1 + num2;
};
अगर फंक्शन बॉडी में सिर्फ एक रिटर्न स्टेटमेंट हो, जैसा ऊपर के उदाहरण में है, तो {} और return कीवर्ड छोड़े जा सकते हैं।
अगर सिर्फ एक पैरामीटर हो, तो ब्रैकेट () भी छोड़े जा सकते हैं।
const addUpTwoNumbers = (num1, num2) => num1 + num2;
const square = num => num * num;
एरो फंक्शन का उपयोग अक्सर फंक्शन कॉल के अंदर ही छोटे कॉलबैक फंक्शन बनाने के लिए किया जाता है।
applyToSquare(number => number * number);
ऐरे में ऐरे की सामग्री का विश्लेषण करने के लिए पहले से मौजूद मेथड होते हैं।
इनमें से ज़्यादातर मेथड एक ऐसा फंक्शन आर्गुमेंट के रूप में लेते हैं जो सही या गलत लौटाता है।
ऐसे फंक्शन को predicate कहते हैं।
ये पहले से मौजूद मेथड for लूप या पहले से मौजूद forEach मेथड की जगह इस्तेमाल करने के लिए बने हैं:
for लूप का उपयोग करके विश्लेषण का उदाहरण:
const numbers = [1, 'two', 3, 'four'];
for (var i = 0; i < numbers.length; i++) {
if (numbers[i] === 'two') {
return i;
}
}
// => 1
पहले से मौजूद मेथड का उपयोग करके विश्लेषण का उदाहरण:
const numbers = [1, 'two', 3, 'four'];
numbers.indexOf('two');
// => 1
ऐरे का विश्लेषण करने के लिए उपलब्ध कुछ और उपयोगी पहले से मौजूद मेथड नीचे दिए गए हैं। ऐरे के सभी मेथड की पूरी सूची के लिए MDN देखिए।
includesincludes(value) मेथड यह तय करता है कि ऐरे में कोई खास वैल्यू मौजूद है या नहीं।
अगर वैल्यू मौजूद हो तो यह true लौटाता है, वरना false।
const numbers = [1, 'two', 3, 'four'];
numbers.includes(1);
// => true
numbers.includes('one');
// => false
everyevery(predicate) मेथड एक ऐसा फंक्शन लेता है जो एक प्रेडिकेट होता है।
यह जाँचता है कि ऐरे के सारे एलिमेंट प्रेडिकेट को दिए जाने पर true लौटाते हैं या नहीं।
दूसरे शब्दों में: यह मेथड जाँचता है कि उसके सारे एलिमेंट उस जाँच में पास होते हैं जो फंक्शन कॉल को दी गई थी।
जब हर एलिमेंट प्रेडिकेट की जाँच में पास होता है तो यह true लौटाता है, वरना false।
const numbers = [1, 3, 5, 7, 9];
numbers.every((num) => num % 2 !== 0);
// => true
somesome(predicate) मेथड every मेथड जैसा ही है, लेकिन यह true लौटाता है अगर ऐरे में कम से कम एक एलिमेंट प्रेडिकेट की जाँच में पास हो।
const numbers = [1, 3, 5, 7, 9];
numbers.some((num) => num % 2 !== 0);
// => true
findfind(predicate) मेथड ऐरे के उस पहले एलिमेंट की वैल्यू लौटाता है जो predicate की जाँच में पास होता है।
जहाँ some() पास होने पर true लौटाता है, वहाँ find() ऐरे में मौजूद असली वैल्यू लौटाता है।
जब ऐरे का कोई भी एलिमेंट प्रेडिकेट की जाँच में पास नहीं होता, तो यह मेथड undefined लौटाता है।
const numbers = [1, 3, 5, 7, 9];
numbers.find((num) => num < 5);
// => 1
findIndexfindIndex(predicate) मेथड find() मेथड जैसा ही है, लेकिन यह value की जगह उस एलिमेंट का (पहला) इंडेक्स लौटाता है जो प्रेडिकेट की जाँच में पास होता है।
जब ऐरे का कोई भी एलिमेंट प्रेडिकेट की जाँच में पास नहीं होता, तो यह मेथड -1 लौटाता है।
const numbers = [1, 3, 5, 7, 9];
numbers.findIndex((num) => num > 7);
// => 4
numbers.findIndex((num) => num > 9);
// => -1
भावी जादूगर एलिस अपना प्रशिक्षण जारी रखती है। उसे पत्तों के कई ढेर दिए जाएँगे, जिनका इस्तेमाल करके उसे अपने करतब दिखाने हैं। चीज़ें थोड़ी आसान करने के लिए वह सिर्फ 1 से 10 तक के पत्ते इस्तेमाल करती है।
इस अभ्यास में ऐरे के अंदर की चीज़ों का विश्लेषण करने के लिए बिल्ट-इन मेथड इस्तेमाल कीजिए।
एलिस जानना चाहती है कि ढेर में किसी पत्ते की जगह (इंडेक्स) क्या है।
const card = 2;
getCardPosition([9, 7, 3, 2], card);
// => 3
एलिस जानना चाहती है कि ढेर में कोई पत्ता मौजूद है या नहीं, यानी यह कि ढेर में कोई खास number है या नहीं।
const card = 3;
doesStackIncludeCard([2, 3, 4, 5], card);
// => true
एलिस जानना चाहती है कि हर पत्ता सम है या नहीं, यानी यह कि ढेर में मौजूद हर संख्या एक सम number है या नहीं।
isEachCardEven([2, 4, 6, 7]);
// => false
एलिस जानना चाहती है कि ढेर में कोई विषम संख्या है या नहीं।
doesStackIncludeOddCard([3, 2, 6, 4, 8]);
// => true
एलिस जानना चाहती है कि जो पहला पत्ता विषम है उसकी वैल्यू क्या है।
getFirstOddCard([4, 2, 8, 7, 9]);
// => 7
एलिस जानना चाहती है कि जो पहला पत्ता सम है उसकी जगह क्या है।
getFirstEvenCardPosition([5, 2, 3, 1]);
// => 1
Exercism पर साइन अप कीजिए और JavaScript को 37 कॉन्सेप्ट159 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।