← Back to JavaScript Course | Chapter 4: Modern JS, Async & DOM | Lesson 5 of 26

JS फॉर लूप

किसी mail carrier के बारे में सोचें जो एक street पर letters deliver कर रहा है, घर नंबर एक, फिर दो, फिर तीन, हर एक address पर बिल्कुल वही delivery action दोहराते हुए जब तक पूरी street खत्म न हो जाए। JavaScript में एक for loop बिल्कुल वही repeated action अपने आप करता है, किसी sequence के हर item के लिए एक बार code का block चलाते हुए, चाहे वह एक तय संख्या बार हो या किसी array के हर element के लिए एक बार। Loops हर चीज़ को चलाते हैं, किसी list में हर tutorial title दिखाने से लेकर quiz answers को एक-एक करके process करने तक, बिल्कुल वैसा repetitive काम जो cookiescursor.com पर लगातार दिखता रहता है।
Syntax
javascript
for (let i = start; i < end; i++) {
  // loop body
}

for (const item of iterable) {
  // loop body
}

Standard for Loop

एक standard for loop के parentheses के अंदर तीन हिस्से होते हैं, एक initializer जो शुरुआत में एक बार चलता है, एक condition जो हर iteration से पहले जांची जाती है, और एक increment step जो हर iteration के बाद चलता है।

Note: classic pattern for (let i = 0; i < array.length; i++) याद रखने लायक है, यह रोज़मर्रा के JavaScript में सबसे आम patterns में से एक है।
Warning: किसी array की length के खिलाफ < की जगह <= इस्तेमाल करने से loop अंत से एक index आगे access करने की कोशिश करता है, जिसका नतीजा undefined होता है।

उदाहरण: The Standard for Loop

javascript
// Classic for-loop: `let i = 0; i < 3; i++`
// Classic for-loop: `let i = 0; i < 3; i++`
for (let i = 0; i < 3; i++) {
  // Print `i` to the console
  // Print `i` to the console
  console.log(i);
}

for...in

for...in किसी object की enumerable property keys पर iterate करता है, आपको बारी-बारी हर key name देते हुए, जिसका इस्तेमाल आप संबंधित value ढूंढने के लिए कर सकते हैं।

इसे आमतौर पर arrays के लिए टाला जाता है क्योंकि यह keys को strings के रूप में iterate करता है और inherited properties भी पकड़ सकता है।

Note: for...in plain objects के लिए बनाया गया है, arrays के लिए, for...of या array methods को prefer करें, वे arrays पर for...in की कुछ अजीब बातों से बचाते हैं।
Warning: किसी array पर for...in कुछ setups में inherited enumerable properties पर भी जाता है, जो इसे खासतौर पर arrays के लिए for...of से कम predictable विकल्प बनाता है।

उदाहरण: for...in

javascript
// Declare the constant `user`, set to `{ name: "Sam", age: 30 }`
// Declare the constant `user`, set to `{ name: "Sam", age: 30 }`
const user = { name: "Sam", age: 30 };
// Loop over the enumerable keys of `user`, binding each to `key`
// Loop over the enumerable keys of `user`, binding each to `key`
for (let key in user) {
  // Print `key, user[key]` to the console
  // Print `key, user[key]` to the console
  console.log(key, user[key]);
}

for...of

for...of सीधे किसी भी iterable की values पर iterate करता है, जैसे arrays, strings, और Sets और Maps जैसी ज़्यादा advanced structures, बिना किसी index को manage किए।

Note: जब आपको हर element का index खासतौर पर नहीं चाहिए, तो arrays पर loop करने के लिए for...of आमतौर पर सबसे साफ विकल्प है।
Warning: for...of को किसी plain object पर सीधे इस्तेमाल नहीं किया जा सकता, objects डिफ़ॉल्ट रूप से iterable नहीं होते, इसकी जगह for...in या Object.keys() इस्तेमाल करें।

उदाहरण: for...of

javascript
// Declare the constant `colors`, set to `["red", "green", "blue"]`
// Declare the constant `colors`, set to `["red", "green", "blue"]`
const colors = ["red", "green", "blue"];
// Loop over `colors`, binding each item to `color`
// Loop over `colors`, binding each item to `color`
for (let color of colors) {
  // Print `color` to the console
  // Print `color` to the console
  console.log(color);
}

break और continue

break पूरे loop से तुरंत बाहर निकल जाता है, बाकी बची सभी iterations को skip करते हुए, जबकि continue सिर्फ current iteration को skip करता है और अगली पर बढ़ जाता है, बिना loop को खत्म किए।

Note: जैसे ही loop में आपको जो ढूंढ रहे थे वह मिल जाए, break इस्तेमाल करें, बाकी items को जांचते रहने की ज़रूरत नहीं।
Warning: किसी for loop के अंदर continue फिर भी अगली iteration पर जाने से पहले increment step चलाता है, इसे भूल जाना loop की state को लेकर उलझन पैदा कर सकता है।

उदाहरण: break and continue

javascript
// Classic for-loop: `let i = 0; i < 5; i++`
// Classic for-loop: `let i = 0; i < 5; i++`
for (let i = 0; i < 5; i++) {
  if (i === 3) break;
  if (i === 1) continue;
  // Print `i` to the console
  // Print `i` to the console
  console.log(i);
}

Nested Loops

एक loop को दूसरे loop के अंदर रखा जा सकता है, जो outer loop की हर एक iteration के लिए inner loop को पूरी तरह चलाता है, यह आमतौर पर grid जैसी या two-dimensional data पर काम करने के लिए इस्तेमाल होता है।

Note: nested loop counters को अलग-अलग नाम दें, जैसे i और j, ताकि यह पता रहे कि कौन सा counter किस loop का है।
Warning: data का size बढ़ने के साथ nested loops जल्दी ही धीमे हो सकते हैं, क्योंकि हर outer iteration के लिए inner loop पूरी तरह चलता है।

उदाहरण: Nested Loops

javascript
// Classic for-loop: `let i = 1; i <= 2; i++`
// Classic for-loop: `let i = 1; i <= 2; i++`
for (let i = 1; i <= 2; i++) {
  // Classic for-loop: `let j = 1; j <= 2; j++`
  // Classic for-loop: `let j = 1; j <= 2; j++`
  for (let j = 1; j <= 2; j++) {
    // Print `i, j` to the console
    // Print `i, j` to the console
    console.log(i, j);
  }
}
Live Example
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. गलत stopping condition लिखना, जैसे zero-based array length के साथ < के बजाय <= इस्तेमाल करना, जिससे out-of-bounds access होता है।
  2. loop counter को increment करना भूल जाना, जो एक infinite loop बनाता है जो अपनी stopping condition कभी पूरी नहीं करता।
  3. किसी array पर for...in इस्तेमाल करना जब for...of या एक regular for loop असल में ज़्यादा उपयुक्त, index-safe choice है।
चैप्टर सारांश
  • एक standard for loop एक initializer, एक condition, और एक increment step के आधार पर चलता है, सब उसके parentheses में defined।
  • for...in किसी object की property keys पर iterate करता है, जबकि for...of सीधे किसी iterable की values पर iterate करता है।
  • break पूरी तरह loop से बाहर निकलता है, continue अगली iteration पर skip करता है, और loops एक-दूसरे के अंदर nested हो सकते हैं।
ब्राउज़र सपोर्ट

for, for...in, और for...of loops सभी core JavaScript features हैं जो हर modern browser में समान रूप से supported हैं।

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.