2016-10-13 32 views
6

मैं किताब "वेब डिजाइनर के लिए जावास्क्रिप्ट" पढ़ रहा हूँ और मैं इस उदाहरण पर आए हैं:.. लूप में - यह क्यों काम करता है?

var fullName = { 
    "first": "John", 
    "last": "Smith" 
}; 
for (var name in fullName) { 
    console.log(name + ": " + fullName[name]); 
} 

उत्पादन होता है:

"first: John" 
"last: Smith" 

क्या मैं नहीं मिलता है: जहां करना मैं प्रोग्राम को "पहले" और "आखिरी" स्ट्रिंग प्राप्त करने के लिए कहता हूं। मेरा मतलब है, ऑब्जेक्ट "fullName" पर साइकिल चलाना, मैं यह देखने में असफल रहा कि "नाम" को "पहले" और "आखिरी" से कैसे जोड़ा जा सकता है। मुझे लगता है, यह स्पष्ट है। क्या आप मदद कर सकते हैं? बहुत धन्यवाद!

+1

'for' पाश अपने वस्तु की कुंजी (जो' name' में संग्रहीत) से अधिक दोहराता की तरह कुछ हो जाएगा की तरह और आप तो का उपयोग सामान्य मानों के समान मान ('पूर्णनाम [नाम] ') – UnholySheep

+0

एक बार जब आप' ऑब्जेक्टप्रॉपर्टी 'या' arrayKey 'जैसे किसी अन्य चीज़ को वैरिएबल' name' का नाम बदलते हैं तो यह अधिक स्पष्ट होगा। –

उत्तर

12

for..in किसी ऑब्जेक्ट के कुंजी पर पुनरावृत्त करता है। फिर आप ऑब्जेक्ट वैल्यू by name using brackets तक पहुंच सकते हैं।

var obj = { 
 
    a: 1, 
 
    b: 2, 
 
    c: 3 
 
}; 
 

 
for (var key in obj) { 
 
    console.log('Key:', key); 
 
    console.log('obj[key] == obj["' + key + '"] == obj.' + key); 
 
    console.log('obj.' + key + ' == ' + obj[key]); 
 
}

6

सीखना और/या समझना बहुत आसान है। आप ऑब्जेक्ट fullName ऑब्जेक्ट में सभी गुणों के माध्यम से लूप कर रहे हैं।

: प्रत्येक प्रॉपर्टी के लिए, आप इसे name

की अस्थायी नाम/उपनाम दे रहे हैं तो आप में से पाश के लिए आप नाम anything द्वारा प्रत्येक संपत्ति का संदर्भ होगा तो जैसे शरीर में for (var anything in fullName) के लिए इसे बदल सकते हैं और फिर

for (var anything in fullName) { 

    // anything is an alias for the current property your on of the object you're looping through 
    console.log(anything + ": " + fullName[anything]); 

} 
3

एक for..in पाश वस्तु की कुंजी के माध्यम से पुनरावृति होगी। यदि आप इसे किसी सरणी पर उपयोग करते हैं, तो यह (अधिकांश ब्राउज़र इंजन) सरणी को दृश्यों के पीछे किसी ऑब्जेक्ट में परिवर्तित कर देगा (शब्दकोश मोड पर और पढ़ें) और चाबियाँ फिर से करें।

आप

var fullName = { 
 
    "first": "John", 
 
    "last": "Smith" 
 
}; 
 
console.log(Object.keys(fullName));

और अनिवार्य रूप से इस कॉल है तो दोहराया का परिणाम का उपयोग करके कुंजी देख सकते हैं। ध्यान रखें कि for..in का उपयोग करके प्रमुख मान जोड़े के आदेश की गारंटी नहीं है।

2

जब आप किसी ऑब्जेक्ट के माध्यम से लूप करते हैं, तो आप कुंजी के माध्यम से पुन: प्रयास करते हैं। इस ऑब्जेक्ट की कुंजी first और last हैं। अधिक जानकारी के लिए https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in का संदर्भ लें।

3
ऊपर कोड name में

वस्तु की कुंजी का प्रतिनिधित्व करते हैं,

पहली और आखिरी वस्तु में दोनों चाबियाँ हैं। और वस्तु में मूल्य तक पहुंचने के लिए इस्तेमाल किया जा सकता है।

पाश के पहले समय में यह इस

for("first" in fullName) { 
console.log("first" + ": " + fullName["first"] //John); 
} 
संबंधित मुद्दे