मैं कुछ मिनट पहले कोडेकैमेडी पर कुछ जावास्क्रिप्ट का अभ्यास कर रहा था और मुझे कुछ उलझन में मिला। यहाँ कोड है:क्यों और स्थिति निष्पादित की जाती है भले ही स्थिति सही है?
var friends = {};
friends.bill = {
firstName: "Bill",
lastName: "Gates",
number: "(206) 555-5555",
address: ['One Microsoft Way','Redmond','WA','98052']
};
friends.steve = {
firstName: "Steve",
lastName: "Jobs",
number: "(408) 555-5555",
address: ['1 Infinite Loop','Cupertino','CA','95014']
};
var list = function(obj) {
for(var prop in obj) {
console.log(prop);
}
};
var search = function(name) {
for(var prop in friends) {
if(friends[prop].firstName === name) {
console.log(friends[prop]);
return friends[prop];
}
else {
return "contact not found";
}
}
};
list(friends);
search("Steve");
समस्या यह है कि जब मैं खोज समारोह में एक आर्ग के रूप में स्ट्रिंग "स्टीव" गुजरती हैं, यह रिटर्न हालत "संपर्क नहीं मिला", जबकि जब मैं स्ट्रिंग पारित "बिल" है एक ही खोज फ़ंक्शन में एक तर्क के रूप में, यह संपर्क जानकारी प्रदर्शित करता है।
यह कैसे संभव है? मैं क्या गलत कर रहा हूं?
धन्यवाद, लेकिन जब मैं "स्टीव" के बजाय "बिल" स्ट्रिंग पास करता हूं तो यह क्यों काम करता है? –
@ अहमद मैगी 'बिल' पहली कुंजी लौटा दी जाती है जब 'दोस्तों' ऑब्जेक्ट को फिर से चालू किया जाता है। आप इसकी पुष्टि करने के लिए 'for' लूप के अंदर' console.log' का उपयोग कर सकते हैं। – thefourtheye