2012-10-14 20 views

उत्तर

8

मैं एक स्ट्रिंग के रूप सूचकांक देता है, अगर आप उन्हें एक पूर्णांक के रूप में पार्स, यह काम करेगा

a = [ 1, 2, 3 ] 

for i of a 
    if parseInt(i) == 0 
     console.log a[i] 
+0

हाँ, आप सही हैं! मैंने बस कुछ मिनट पहले इसे समझ लिया ... एलओएल वैसे भी धन्यवाद :) – x1a0

+1

@ZhangXiao लेकिन कुरमीआ का जवाब आपके सामने पोस्ट किया गया था। इसलिए, मैं आपका स्वयं का जवाब हटाने का सुझाव देता हूं, और इसे स्वीकार करता हूं। –

+1

@RobW आप सही हैं। मै वो कर लूंगा :) – x1a0

1

यह है, क्योंकि i केवल 1, 2 या 3 होगा आप a में आइटम, नहीं सूचकांक संख्या से अधिक लूप के रूप में।

a = [ 1, 2, 3 ] 

for i in [0..a.length] 
    if i == 0 
     console.log a[i] 
+0

हाय, आपके उत्तर के लिए धन्यवाद :) हालांकि मैं सूचकांक पर लूपिंग कर रहा था। ध्यान दें कि मैं '' 'लेकिन' in' का उपयोग कर रहा था। – x1a0

+0

@ZhangXiao: आपको सरणी पर 'लूप' का उपयोग नहीं करना चाहिए, सरणी पर लूप को 'इन'' का उपयोग करना चाहिए। –

+0

@muistooshort धन्यवाद। मैं अंतर को समझता हूं और इस मामले में मैं '''' का उपयोग करता हूं :) – x1a0

1

आप उपयोग नहीं करना चाहिए:

इस तरह से आप ऊपर वर्णित काम करता है of एक सरणी पर लूप करने के लिए, आपको in का उपयोग करना चाहिए। fine manual से:

किसी ऑब्जेक्ट में कुंजी और मानों पर पुनरावृत्ति के लिए भी समझ का उपयोग किया जा सकता है। किसी सरणी में मानों की बजाय ऑब्जेक्ट के गुणों पर समझ को सिग्नल करने के लिए of का उपयोग करें।

yearsOld = max: 10, ida: 9, tim: 11 

ages = for child, age of yearsOld 
    "#{child} is #{age}" 

तो तुम गुण एक सरणी वस्तु के, न कि उसकी अनुक्रमणिका से अधिक पुनरावृति करने की कोशिश कर रहे हैं।

आप अपने पाश के लिए इनमें से किसी एक का उपयोग करना चाहिए:

for e, i in a 
    if(i == 0) 
     console.log(a[i]) 

for e, i in a 
    console.log(e) if(i == 0) 

console.log(e) for e, i in a when i == 0 

#... 

या, जब से तुम एक सरणी और एक संख्यात्मक इंडेक्स है, यही कारण है कि सिर्फ पाश छोड़ सकते हैं और बात करने के लिए सही नहीं:

console.log(a[0]) 
संबंधित मुद्दे